专家!我是虚拟机中的WinXP用户。我已经安装了MinGW和一个用于开发C / C ++应用程序的IDE。今天我在MSDN上遇到了一个代码片段,你可以看到,
DEVMODE dm;
// initialize the DEVMODE structure
ZeroMemory(&dm, sizeof(dm));
dm.dmSize = sizeof(dm);
if (0 != EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &dm))
{
// swap height and width
DWORD dwTemp = dm.dmPelsHeight;
dm.dmPelsHeight= dm.dmPelsWidth;
dm.dmPelsWidth = dwTemp;
// determine new orientaion
switch (dm.dmDisplayOrientation)
{
case DMDO_DEFAULT:
dm.dmDisplayOrientation = DMDO_270;
break;
case DMDO_270:
dm.dmDisplayOrientation = DMDO_180;
break;
case DMDO_180:
dm.dmDisplayOrientation = DMDO_90;
break;
case DMDO_90:
dm.dmDisplayOrientation = DMDO_DEFAULT;
break;
default:
// unknown orientation value
// add exception handling here
break;
}
long lRet = ChangeDisplaySettings(&dm, 0);
if (DISP_CHANGE_SUCCESSFUL != lRet)
{
// add exception handling here
}
}
当我在我的示例中编译该代码段时,我收到此错误消息,
错误:' DMDO_DEFAULT'未宣布的
错误:' DMDO_270'未宣布的
...
错误:' DMDO_90'未申报
我知道这些常数包含在" wingdi.h"文件,在我的情况下,这个文件包含这个代码,我认为它是正确的。
#if(WINVER >= 0x0501)
..
#define DMDO_DEFAULT 0x00000000
#define DMDO_90 0x00000001
#define DMDO_180 0x00000002
#define DMDO_270 0x00000003
问题出在哪里,有人可以向我解释一下吗? "版本"命令给了我那个输出,
$ ver
Microsoft Windows XP [Version 5.1.2600]
对不起我的英语语法,谢谢你的帮助。