ISPP宏调用emit和expr

时间:2011-08-02 15:32:20

标签: inno-setup

ISPP宏可以调用emit和expr吗?

我的代码如下:

#if oemid == "company1"
  ;Company 1
  #define OEMName "Company 1"
  #define OEMDir "..\Customisation\Company1\"
  #Include "P:\Common\Setups\Japanese.iss"
  #define bannerpath OEMDir+"Setup.bmp"
#elif oemid == "company2"
  ;Company 2
  #define OEMName "Company 2"
  #define OEMDir "..\Customisation\Company2\"
  #define bannerpath OEMDir+"Setup.bmp"
  #define OEMIcon "{app}\OEMIcon.ico"
#elif oemid == "Company 3"
  ;Company 3
  #define OEMDir "..\Customisation\Company3\"
etc...

每个自定义设置都使用存根ISS脚本构建,该脚本设置id并包含主ISS脚本。

我正在尝试将其转换为在存根脚本中实现的通用调用:

#expr OEMInit1()

#define OEMInit1() \
  emit ";Company 1" \
  define OEMDir "..\Customisation\Company1\" \
  define bannerpath OEMDir+"Setup.bmp"

这是失败的:

[ISPP] Error at 3:23 in macro OEMInit1:
Undeclared identifier: "emit".

我如何说服ISPP它是另一个指令而不是标识符?

如果我的杆完全错了,可以自由地用它击打我:)

由于

1 个答案:

答案 0 :(得分:0)

感谢Inno新闻组的Gavin,他指的是#sub

#sub OEMInit1
  ;company 1"
  #define public OEMDir "..\Customisation\Company1\"
  #define public bannerpath OEMDir+"Setup.bmp"
#endsub

请注意“公开”,以便可以在呼叫代码中进行访问。