Всем привет!
Один и тот же исходник (*.cpp) компилируется и в проекте для "большой" Windows, и для WinCE. Те куски кода, которые зависят от платформы разделяются следущим образом (небольшой пример):
#ifdef _WIN32_WCE // ветка A
unsigned long nIdStreamOut;
if ( !(CreateThread(0, 0, func, (void*) params, 0, &nIdStreamOut)) )
#else // ветка B
unsigned nIdStreamOut;
if ( !(_beginthreadex(0, 0, func, (void*) params, 0, &nIdStreamOut)) )
#endif
И компилятор доволен. Но есть необходимость (иногда) "идти" по ветке A в проекте для "большой" Windows. Что-то наподобии такого:
#define BIGWIN_SIMULATOR 1
#ifdef _WIN32_WCE || BIGWIN_SIMULATOR // это, разумеется, псевдокод
#else
#endif
Как директивами условной компиляции решить эту задачу?
Заранее спасибо!
Здравствуйте, netch80, Вы писали:
А>>#ifdef _WIN32_WCE || BIGWIN_SIMULATOR // это, разумеется, псевдокод
N>#if defined(_WIN32_WCE) || defined(BIGWIN_SIMULATOR)
Лучше не так, а так:
#if defined(_WIN32_WCE) || BIGWIN_SIMULATOR || !defined(BIGWIN_SIMULATOR) && 0/BIGWIN_SIMULATOR
и объявлять BIGWIN_SIMULATOR, либо 0, либо 1.
Если вдруг BIGWIN_SIMULATOR необъявлен по ошибке, то не скомпилируется.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]