2011-08-02 27 views
2

ISPP宏可以调用emit和expr吗?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() 

和:

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

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

这与失败

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

如果我有完全的棒错误的结束,下跌自由与它:)

感谢

回答

0

感谢加文在新闻组的Inno指出谁打我我#sub

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

请注意“公共”,以便它可以在调用代码中访问。