Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nsis 如何安装字体?_Nsis - Fatal编程技术网

Nsis 如何安装字体?

Nsis 如何安装字体?,nsis,Nsis,如果我只是使用文件安装字体,安装会很顺利,但字体是无用的:当您尝试使用它们写字时,不会显示任何字符,如果您在字体文件夹中双击它们,它们的预览将为空 到目前为止,我试着用这段代码: FindFirst $5 $6 "..\3rdparty\fonts\*.ttf" loop: StrCmp $6 "" done !insertmacro InstallTTFFont $6 FindNext $5 $6 Goto loop done: FindClose $5 但是

如果我只是使用文件安装字体,安装会很顺利,但字体是无用的:当您尝试使用它们写字时,不会显示任何字符,如果您在字体文件夹中双击它们,它们的预览将为空

到目前为止,我试着用这段代码:

FindFirst $5 $6 "..\3rdparty\fonts\*.ttf"
loop:
    StrCmp $6 "" done
    !insertmacro InstallTTFFont $6
    FindNext $5 $6
    Goto loop
done:
FindClose $5
但是,我得到了这个错误:

!!insertmacro:InstalltFunt推送:$0 推送:$R0推送:$R1推送:$R2!定义: “索引”=“第66.6行”!插入宏: GetFileNameCall推送:$6呼叫 “GetFileName”弹出窗口:$0!插入宏: GetFileNameCall结束!定义: “FontFileName”=“$0”设置输出路径: “$FONT\U DIR”文件存在: “$FONT\U DIR\$0”?第66.6行:文件: “$6”->未找到任何文件。用法:文件 [/nonfatal][/a]([/r][/x filespec […]]文件规范[…]|
/oname=outfile one\u文件(仅适用于文件)中出错 宏行14上的宏安装函数 脚本错误 “C:\ScanModule\Install\ScanModule.nsi” 第66行--中止创建 过程


编辑:如果我只是手动写出所有单独的字体,它就会工作。所以问题解决了。索塔。我不是在抱怨,但这并不酷。

我有四个想法:

  • 你也试过引用吗

    !!insertmacro InstalltFunt“$6”

  • 是第一个。。。在开发人员的机器上还是在用户的机器上执行循环?我不知道它是如何工作的,也不知道它的实现是否适合您

  • 我看到您使用了相对路径“.\3rdparty\font*.ttf”。启动命令时的工作目录是什么

  • 您还可以将类似的内容添加到C:\ScanModule\Install\ScanModule.nsi中,以了解为什么只能手动编写字体

    MessageBox MB_OK“参数0:$0”


  • 好吧,这是一个维基,没有什么能阻止你贡献一个只注册字体的宏版本。。。