0

专家!我是虚拟机中的 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”命令给了我那个输出,

$ ver
Microsoft Windows XP [Version 5.1.2600]

对不起我的英语语法,谢谢你的帮助。

4

0 回答 0