эксперты! Я пользователь WinXP на виртуальной машине. Я установил MinGW и IDE для разработки приложений C/C++. Сегодня я наткнулся на фрагмент кода в 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]
Извините за мою английскую грамматику, спасибо за помощь.
stdafx.h
, который создается при создании нового проекта. Но вы используете MinGW, так что... - person Frédéric Hamidi   schedule 06.10.2016