开发者

Visual C++ 2008 doesn't recognize Windows declared types

I have a program that doesn't seem to recognize declared types in the latest U3D software. There's a line

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

which gets the error:

Error 1 error C2061: syntax error : identifier 'LPMONITORINFOEX' c:\Projects\U3D\Source\RTL\Platform\Common\Win32\IFXOSRender.cpp 28

and a line

MONITORINFOEX miMon;

which gets

Error 5 error C2065: 'miMon' : undeclared identifier c:\Projects\U3D\Source\RTL\Platform\Common\Win32\IFXOSRender.cpp 49 Error 3 error C2065: 'MONITORINFOEX' : undeclared identifier c:\Projects\U3D\Source\RTL\Platform\Common\Win32\IFXOSRender.cpp 49

The program's first non-comment statement is #include <windows.h>, which includes winuser.h, which defines these identifiers. In Visual Studio, I can right-click on them and go to the definition (a typedef) and from the typedef to the struct. WINAPI is defined in WinDef.h, so that seems to be working. There are no redefinitions of LPMONITORINFOEX or MONITORINFOEX in any other file.

So, how can this be happ开发者_运维百科ening, and what can I do about it?


My guess is something is up with your WINVER define. If you look at winuser.h, those are only defined in the block:

#if(WINVER >= 0x0500)

Is it possible that your WINVER is incorrectly set?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜