Макросы ISPP, вызывающие emit и expr - PullRequest
2 голосов
/ 02 августа 2011

Могут ли макросы 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-скрипта, который устанавливает идентификатор и включает основнойСценарий 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 голосов
/ 03 августа 2011

Спасибо Гэвину из группы новостей Inno, который указал мне на # sub

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

Обратите внимание на "public", чтобы он был доступен в коде вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...