Есть у меня библиотека, универсальная для сред Win32 и WDM (режима ядра). Набор файлов один, полно условной компиляции, а версии для пользовательского и ядерного режимов собираются в проектах с соответствующими параметрами внутри одного solution'а (VS 2008, до того была 2005). Для Win32-проектов определен макрос _W32App, для WDM — _WdmDriver. В заголовочных файлах по ним определяются и другие макросы, для удобства.
И вот IntelliSense, которому бы побольше ума в более подходящих случаях, непонятным мне образом отслеживает определенность "первичных" макросов. В одних случаях он считает, что определен _W32App, и делает "неактивным" код для Win32, в других — наоборот, но никогда не считает их определенными одновременно. А в "неактивном" коде, соответственно, не работают ни автозавершение имен, ни меню членов, ни подсказки по функциям.
Как бы его так обмануть, чтобы при работе с кодом он считал определенными оба макроса?
Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Как бы его так обмануть, чтобы при работе с кодом он считал определенными оба макроса?
Думаю как-то так, не тестировал:
#if defined(_W32App) || defined(__INTELLISENSE__)
#endif
Не бойтесь совершенства. Вам его не достичь. © Сальвадор Дали
Здравствуйте, Senyai, Вы писали:
S>S>#if defined(_W32App) || defined(__INTELLISENSE__)
S>#endif
S>
VS 2008 не поддерживает __INTELLISENSE__.
А было бы неплохо.