2011-08-02 2 views
2

Les macros ISPP peuvent-elles appeler emit et exprimer?Les macros ISPP appelant emit et expr

J'ai le code comme suit:

#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... 

avec chaque configuration personnalisée construit avec un bout de script ISS qui définit l'identifiant et comprend le script principal ISS.

Je suis en train de convertir à un appel générique qui est mis en œuvre dans le script tampon:

#expr OEMInit1() 

et:

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

Ce n'est en voie avec:

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

Comment puis-je convaincre ISPP qu'il s'agit d'une autre directive au lieu d'un identifiant?

Si j'ai complètement le mauvais bout du bâton, ne hésitez pas à me frapper avec elle :)

Merci

Répondre

0

Merci à Gavin sur le newsgroup Inno qui me montra #sub

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

Notez le "public" afin qu'il puisse être accessible dans le code appelant.