Visual C ++ 2008 не распознает объявленные типы Windows - PullRequest
0 голосов
/ 11 мая 2010

У меня есть программа, которая не распознает объявленные типы в последней версии программного обеспечения U3D. Там есть линия

typedef BOOL (WINAPI* GMI)(HMON, LPMONITORINFOEX);

, который получает ошибку:

Ошибка 1, ошибка C2061: синтаксическая ошибка: идентификатор «LPMONITORINFOEX» c: \ Projects \ U3D \ Source \ RTL \ Platform \ Common \ Win32 \ IFXOSRender.cpp 28

и строка

MONITORINFOEX miMon;

, который получает

Ошибка 5, ошибка C2065: «miMon»: необъявленный идентификатор c: \ Projects \ U3D \ Source \ RTL \ Platform \ Common \ Win32 \ IFXOSRender.cpp 49 Ошибка 3 ошибка C2065: «MONITORINFOEX»: необъявленный идентификатор c: \ Projects \ U3D \ Source \ RTL \ Platform \ Common \ Win32 \ IFXOSRender.cpp 49

Первый оператор программы без комментариев - #include <windows.h>, который включает winuser.h, который определяет эти идентификаторы. В Visual Studio я могу щелкнуть по ним правой кнопкой мыши и перейти к определению (typedef) и от typedef к struct. WINAPI определен в WinDef.h, так что, похоже, работает. В любом другом файле нет переопределений LPMONITORINFOEX или MONITORINFOEX.

Итак, как это может происходить, и что я могу с этим поделать?

1 Ответ

1 голос
/ 11 мая 2010

Я думаю, что-то не так с вашим определением WINVER. Если вы посмотрите на winuser.h, они определены только в блоке:

#if(WINVER >= 0x0500)

Возможно ли, что ваш WINVER неправильно установлен?

...