【发布时间】:2013-08-18 17:29:46
【问题描述】:
是否有通过变量提及文件来包含文件?我是说
StrCpy $1 "bla.nsh"
!include $1
?
或者可能获取由另一个变量调用的变量的值,例如:
StrCpy $1 "EN"
StrCpy $2 ${LANG_${1}_WELCOME_MESSAGE}
?
谢谢。
【问题讨论】:
标签: nsis
是否有通过变量提及文件来包含文件?我是说
StrCpy $1 "bla.nsh"
!include $1
?
或者可能获取由另一个变量调用的变量的值,例如:
StrCpy $1 "EN"
StrCpy $2 ${LANG_${1}_WELCOME_MESSAGE}
?
谢谢。
【问题讨论】:
标签: nsis
变量只能在运行时使用(在最终用户机器上运行),您需要使用定义:
!define foo "bar"
!include "${foo}.nsh"
编辑:
如果您想添加自定义翻译字符串,您应该使用LangString 指令,您可以在运行时使用$(mystringid) 访问语言字符串。
【讨论】:
LANG_EN_WELCOME 我如何用 $1 获得定义?我的意思是像 ${LANG_${1}_WELCOME} 但它对我不起作用。
实际上,安德斯是对的。想想看,当编译器编译你的代码时,它需要知道它需要在你的 EXE 文件中包含哪些文件。
关于变量,您只能与定义一起使用。再次,因为在编译时,编译器将编译所有需要的(正在使用的)变量/定义,并且您不能告诉他使用从未声明过的变量。它与服务器端语言几乎没有什么不同,因为您正在编译并将您的代码打包到您的计算机中组装的 EXE 文件中。
【讨论】: