2011-08-02 81 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 

請注意「公共」,以便它可以在調用代碼中訪問。