|
![]() |
#1 |
Axapta
|
|
|
![]() |
#2 |
очами вижу
|
|
|
![]() |
#3 |
Участник
|
Цитата:
|
|
|
За это сообщение автора поблагодарили: aidsua (1). |
![]() |
#4 |
очами вижу
|
Цитата:
Сообщение от gl00mie
![]() Можно - для этого в макросе надо вместо define'ов сразу писать текст (кусок кода, например), который вы хотите подставлять в местах использования макроса. В этих местах вам надо будет указать само название макроса с '#', см., например, макрос FilePathDelimiter. А, скажем, в макросе InventDimJoin можно посмотреть, как использовать переданные макросу параметры. Главное тут - не увлекаться, чтобы не ухудшать читаемость кода (см. A rant against flow control macros).
Мы видим, что в некоторых модулях проверяется наличие макроса never (для чего это сделано в данном случае неважно), но так как он не определен, код внутри этих команд препроцессора не компилируется. Желание таково: заставить компилироваться код внутри этих #if-ов. В C++ достаточно добавить такой дефайн в параметры компилятора, чтобы он был определен во всех модулях. Можно ли в аксапте сделать так же? |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от RumataEstor
![]() Наверное, я в третий раз плохо описываю свое желание. Мы видим, что в некоторых модулях проверяется наличие макроса never (для чего это сделано в данном случае неважно), но так как он не определен, код внутри этих команд препроцессора не компилируется. Желание таково: заставить компилироваться код внутри этих #if-ов.
|
|
![]() |
#6 |
Участник
|
Цитата:
Сообщение от gl00mie
![]() Ну дык ить... я же написал: достаточно создать в узле AOT\Macros макрос с названием never и в этом макросе написать что-нить, например, просто "1" (без кавычек), после чего запустить глобальную компилляцию. Только это все теория - ни в коем случае не создавайте на самом деле такой макрос, а то поломаете приложение в куче мест!
Это должен быть именно #define.Something Макросы в АОТ не покатят. В ответ на вопрос RumataEstor: опять же, нет, думаю такого места нет |
|
|
За это сообщение автора поблагодарили: gl00mie (5). |
![]() |
#7 |
очами вижу
|
Цитата:
Сообщение от gl00mie
![]() Ну дык ить... я же написал: достаточно создать в узле AOT\Macros макрос с названием never и в этом макросе написать что-нить, например, просто "1" (без кавычек), после чего запустить глобальную компилляцию. Только это все теория - ни в коем случае не создавайте на самом деле такой макрос, а то поломаете приложение в куче мест!
Жаль |
|
![]() |
#8 |
Участник
|
Цитата:
![]() ![]() Цитата:
The #if and #undef directives do not apply to #macrolib names. However, they do apply to #define directives that are the contents of a #macrolib macro.
PS. Отсюда - мораль: надо чаще читать документацию ![]() |
|