一个weird nsis问题
nsis吧
全部回复
仅看楼主
level 6
aa573468611 楼主
我使用C:\PROGRAM FILES\NSIS\UNICODE 目录下的makensis.exe可以成功编译现在的nsi脚本,这个NSIS版本好像是v2.3的,但是我使用最新下载的v2.6的 却不能编译通过,这是为什么呢?
要是这个样子,那以后只能拿着v2.3的Unicode到处跑了。
我现在就是没有思路,不知道从哪里下手解决这个问题
根号三!![太开心]
2013年08月20日 02点08分 1
level 6
aa573468611 楼主
再补充两个小问题
1、今天看一个别人的nsis include目录,里面一些文件涉及的变量跟到一半就跟不下去了,比如mui.xxx这个mui是什么,是在哪里定义的
2、我知道库和头文件都是在Plugins和include文件夹中定义的,那么它所用到的常量呢?在哪里定义的?
2013年08月20日 04点08分 2
level 6
aa573468611 楼主
在加载license页面的时候,遇到一个问题,比如我用下面的这句
!insertmacro MUI_PAGE_LICENSE "C:\Users\songyu\Desktop\SetUp_test\verify.txt"
那么显示的license内容就是中文,没问题
但前提是要用nsis的makensis.exe,如果用unicode的makensis.exe就出现乱码,但是我现在必须要有后者来编译,不知道如何是好,非得要用rtf文件吗?三哥?
2013年08月20日 09点08分 3
level 6
aa573468611 楼主
比如我调用一个函数 System::Call "$PLUGINSDIR\PlayerConfig::CompareSoftVersion(t '${PackagePlayerVer}', t '$PlayerVersion', *i R2R2) i .r0"
其中PlayerConfig是我自己的vc编的函数,我知道这样调用,但内部nsis是如何与我这个函数关联的
2013年08月21日 01点08分 4
level 6
1. 新版本的 NSIS 你也可以找一个对应版本的安装。
1.2 编译错误。你可以说说具体哪个错误。
2. 看帮助吧。而且你 NSH 肯定没好好看。
3. 你会用记事本吗?你另存为功能用过吗?知道文本文件的编码吗?
4. NSIS 也是 C 语言写的,你的 DLL,你如何调用, 人家 NSIS 就如何调用,你这个问题好无聊啊。
2013年08月21日 03点08分 5
level 6
aa573468611 楼主
虽说回答问题语气不如三哥温柔,讲解也不如三哥细致。不过总归是个热心肠,谢谢!
2013年08月21日 04点08分 6
level 7
1. ANSI 版请使用 ANSI 编码的脚本,Unicode 版请使用 Unicode 编码的脚本。
2.1 变量都在 ${NSISDIR}\Contrib\Modern UI 2\Pages 里面的 nsh 文件中。
2.2 常量都在 Include 中的 nsh 中,如 nsDialogs.nsh、 WinMessages.nsh。
3. 同 1 所述,文件编码问题。
4. 是 System.dll 插件内部进行参数分析的。其调用约定默认为 __stdcall,使用 LoadLibrary、GetProcAddress 的方式来调用。最好将该插件修改为 NSIS 插件方式,这样更容易使用。
2013年09月03日 09点09分 7
level 6
aa573468611 楼主
2013年09月04日 01点09分 8
level 6
aa573468611 楼主
好sei 雷啊
2013年09月04日 01点09分 9
1