我的程序在最新的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
的重新定义。
那么,这怎么可能发生,我该怎么办呢?
答案 0 :(得分:1)
我的猜测是你的WINVER定义了。如果你看一下winuser.h,那些只在块中定义:
#if(WINVER >= 0x0500)
您的WINVER可能设置错误吗?