Такая проблема: отдельный модуль собирается в DEBUG & RELEASE в *.lib файлы. Тестовый пример также собирается в обеих конфигурациях. Тестовый пример использует библиотеку ACE и еще одну XYZ, выполненную на заказ, которая также использует ACE.
Далее, подключаю и использую в целевом проекте ABC библиотеки ACE и XYZ абсолютно аналогично тому, как это сделано в тестовом примере. Но ABC собирается только в DEBUG, в RELEASE случается ошибка:
D:\SVN\ACE_wrappers\ace/OS_NS_Thread.inl(3634) : error C2039: 'TryEnterCriticalSection' : is not a member of '`global namespace''
Причина, которую обнаружил — не дейфайнится _WIN32_WINNT, хотя в
d:\svn\ace_wrappers\ace\config-win32-common.h
есть код
#if !defined (_WIN32_WINNT)
# define _WIN32_WINNT 0x0400
#endif
который включается и в DEBUG, и в RELEASE сборках.
RELEASE собирается, если включаю дополнительно
# define _WIN32_WINNT 0x0400
в *.h, где использую ACE и XYZ, но такое лечение рассматриваю только как крайний случай.
Выслушаю любые предположения.
Спасибо.