У меня есть программа, которая не распознает объявленные типы в последней версии программного обеспечения 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
.
Итак, как это может происходить, и что я могу с этим поделать?