TryEnterCriticalSection' : is not a member of '`global names
От: overt Ниоткуда  
Дата: 11.09.08 07:07
Оценка:
Такая проблема: отдельный модуль собирается в 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, но такое лечение рассматриваю только как крайний случай.

Выслушаю любые предположения.
Спасибо.
(MS VS 7.1/8.0)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.