如何解决在 3.06 的 unicode 中更新插件
我正在将我的脚本更新到 NSIS 3.06 版。
所以我在脚本中添加了“Unicode True”,但插件有问题。
这些插件不是“x86-unicode”版本:
如果有人能够编译并提供dll,在此先感谢您。
解决方法
Stackoverflow 并不是真正适合此类问题的地方。最好的办法是请这些插件的作者为您创建一个版本。
或者您可以尝试使用 CallAnsiPlugin plug-in,它可以在 Unicode 安装程序中调用这些较旧的插件。
,修改在FontName插件上添加CallAnsiPlugin比较困难。
我将 FontName.dll 移动到“x86-ansi”文件夹。
我已将 FontName.nsh、FontReg.nsh 和 FontRegAdv.nsh ANSI 转换为 UTF8。
在 FontName.nsh 中,我将 FontName::Version
替换为
File "/ONAME=$PLUGINSDIR\FontName.dll" "${NSISDIR}\Plugins\x86-ansi\FontName.dll"
CallAnsiPlugin::Call "*$PLUGINSDIR\FontName" Version 0
和 FontName::Name
与
File "/ONAME=$PLUGINSDIR\FontName.dll" "${NSISDIR}\Plugins\x86-ansi\FontName.dll"
CallAnsiPlugin::Call "*$PLUGINSDIR\FontName" Name 0
但在安装过程中会导致“CallAnsiPlugin 错误”和 MessageBox“0”。 我添加了这个修改: https://stackoverflow.com/a/56854513/15597989 现在打印:
[ERROR] InstallTTFFont
[ERROR] error: 0
[ERROR] FontFile: startest.ttf
[ERROR] FontFileName: startest.ttf
[ERROR] Index: Line183.6
我发现值 0 正是 CallAnsiPlugin::Call "*$PLUGINSDIR\FontName" Name 0
。
所以我测试将 (FontReg.nsh line 83) IfErrors 0 "${Index}-Add"
替换为 goto "${Index}-Add"
总是显示“CallAnsiPlugin error”,但文件已安装。
-
我不知道如何去除这个错误的返回值!?
-
我看到CallAnsiPlugin使用了一个文件,这个文件在安装程序创建的临时文件夹中没有删除。我不认为这是正常的?
编辑: 我的解决方案有效: https://github.com/22starworld/FontName-plug-in-NSIS
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。