看完标题,好吧,我承认,最近搞的事情有点杂,Python,C#,现在又搞起InstallShield了。。如果你尚不知道InstallShield为何物,有何用处,到底是不是可以吃的东西,那么请自行放狗搜之。
废话少说,在编写InstallShield的Script的时候,遇到一个问题:我在Setup.rul脚本里面定义了一些全局变量,如何在别的脚本中使用呢?比方说我定义了一个ERROR_MESSAGE全局变量,希望在有问题的时候把错误信息填进这个变量,然后在OnAbort()的处理中直接显示ERROR_MESSAGE的内容即可。但有些时候错误并不会只在Setup.rul文件中出现,所以就需要在不同的script中共享全局变量。
其实我也Google了半天,但没发现有用的东西,因为Google上关于InstallShield的内容太少了,更何况是script。。使用external关键字声明也不行,后来灵机一动,解决了,在Setup.rul文件中,进行如下的定义即可:
string LOG_PATH; // the path of log file
string ERROR_MESSAGE; // store error message when error occured
// include the file here because it may use the global variables above
#include "utils.rul"
这样,在utils.rul脚本中,就可以正常使用LOG_PATH和ERROR_MESSAGE全局变量了。