0

専門家!私は仮想マシンの WinXP ユーザーです。C/C++ アプリケーションを開発するための MinGW と 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