21.08.2008, 16:43
|
#19
|
Участник
Регистрация: 28.11.2005
Адрес: Москва
|
Цитата:
Сообщение от kashperuk
Не, такое не будет работать. Это должен быть именно #define.Something Макросы в АОТ не покатят.
Мда, действительно. Опять тут возникает некоторая путаница из-за "упрощенного" синтаксиса В общем, когда создается подузел в AOT\Macros, то включить текст этого узла в код можно с помощью директивы #macrolib.имя_макроса_в_AOT, хотя допускается "сокращенный" вариант - просто #имя_макроса_в_AOT. В то же время, для препроцессора (как выясняется ) макрос как тот или иной узел в AOT\Macros и макрос, определенный с помощью директив #define/#globaldefine, суть вещи разные. По крайней мере, в Ms Dynamics SDK в разделе «How to: Use the #macrolib Directive for AOT Macro Libraries» пишут
Цитата:
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.
И еще там же есть раздел «Range of Macro Referencing», где подробно объясняется, как препроцессор определяет область видимости макроса (опять же, с точки зрения директивы #if макросом является то, что объявлено с помощью директив #define/#globaldefine) - никаких "единых для всего приложения" мест там не упоминается...
PS. Отсюда - мораль: надо чаще читать документацию
|
|