Plugins 用unicode更新3.06版本的插件

Plugins 用unicode更新3.06版本的插件,plugins,unicode,nsis,Plugins,Unicode,Nsis,我正在将脚本更新到NSIS的3.06版 所以我在脚本中添加了“Unicode True”,但我在插件方面遇到了问题 这些插件不是“x86 unicode”版本: 如果有人能够编译并提供dll,请提前感谢。Stackoverflow并不是解决此类问题的好地方。最好的办法是让这些插件的作者为您创建一个构建 或者,您可以尝试,它可以在Unicode安装程序中调用这些旧插件。在FontName插件上添加CallAnsiPlugin的修改更为困难 我将FontName.dll移动到“x86 ans

我正在将脚本更新到NSIS的3.06版

所以我在脚本中添加了“Unicode True”,但我在插件方面遇到了问题

这些插件不是“x86 unicode”版本:


如果有人能够编译并提供dll,请提前感谢。

Stackoverflow并不是解决此类问题的好地方。最好的办法是让这些插件的作者为您创建一个构建


或者,您可以尝试,它可以在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
File "/ONAME=$PLUGINSDIR\FontName.dll" "${NSISDIR}\Plugins\x86-ansi\FontName.dll"
CallAnsiPlugin::Call "*$PLUGINSDIR\FontName" Name 0
FontName::Name
with

File "/ONAME=$PLUGINSDIR\FontName.dll" "${NSISDIR}\Plugins\x86-ansi\FontName.dll"
CallAnsiPlugin::Call "*$PLUGINSDIR\FontName" Version 0
File "/ONAME=$PLUGINSDIR\FontName.dll" "${NSISDIR}\Plugins\x86-ansi\FontName.dll"
CallAnsiPlugin::Call "*$PLUGINSDIR\FontName" Name 0
但在安装过程中,它会导致“CallAnsiPlugin错误”和消息框“0”。 我添加了以下修改: 现在打印:

[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第83行)
IfErrors 0“${Index}-Add”
by
goto“${Index}-Add”
始终显示“CallAnsiPlugin error”,但文件已安装

  • 我不知道如何删除这个假返回值

  • 我看到CallAnsiPlugin使用了一个文件,这个文件没有在安装程序创建的临时文件夹中删除。我觉得这不正常

编辑: 我的有效解决方案是:

官方论坛没有发送注册确认电子邮件,因此无法在上面进行书写…CallAnsiPlugin插件与Marquee配合良好。请尝试作者@文件未被删除,因为您在路径前面加了
*
Name 0
可能不应该是0,它需要是参数计数。在插件的源代码
Name
Version
中写入
Name
Version
,这就是导致错误“CallAnsiPlugin error”的原因。对于参数:1表示版本,7表示名称,这是有效的值。