0

我有一个程序似乎无法识别最新 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\源\RTL\Platform\Common\Win32\IFXOSRender.cpp 49

程序的第一个非注释语句是#include <windows.h>,其中包括winuser.h,它定义了这些标识符。在 Visual Studio 中,我可以右键单击它们并转到定义(typedef)并从 typedef 转到结构。 WINAPI中定义WinDef.h,所以这似乎工作。没有重新定义LPMONITORINFOEXMONITORINFOEX在任何其他文件中。

那么,这怎么可能发生,我能做些什么呢?

4

1 回答 1

1

我的猜测是您的 WINVER 定义有问题。如果您查看 winuser.h,这些仅在块中定义:

#if(WINVER >= 0x0500)

是否有可能您的 WINVER 设置不正确?

于 2010-05-11T15:00:31.697 回答