GetConsoleWindow не было объявлено в этой области?

#include<windows.h> уже добавил, так почему компилятор GCC-mingw32 сообщил, что 'GetConsoleWindow' was not declared in this scope ?

Вот мой код:

#include<iostream>
#include<cmath>
#include<windows.h>

using namespace std;

#define PI 3.14

int main()
{
//Get a console handle
HWND myconsole = GetConsoleWindow();
//Get a handle to device context
HDC mydc = GetDC(myconsole);

int pixel =0;

//Choose any color
COLORREF COLOR= RGB(255,255,255);

//Draw pixels
for(double i = 0; i < PI * 4; i += 0.05)
{
SetPixel(mydc,pixel,(int)(50+25*cos(i)),COLOR);
pixel+=1;
}

ReleaseDC(myconsole, mydc);
cin.ignore();
return 0;
}

Благодарю. ^^

4

Решение

От MSDN:

Чтобы скомпилировать приложение, использующее эту функцию, определите _WIN32_WINNT
как 0x0500 или позже.

Таким образом, вы можете попробовать заменить

#include<windows.h>

с

#define _WIN32_WINNT 0x0500
#include<windows.h>

Или включить SDKDDKVer.h из Windows SDK:

Включение SDKDDKVer.h определяет самую высокую доступную платформу Windows.

7

Другие решения

документация говорит:

Чтобы скомпилировать приложение, использующее эту функцию, определите _WIN32_WINNT как 0x0500 или выше.

Я подозреваю, что вы этого не сделали.

Вы должны определить условное выражение перед тем, как включить windows.h. Обратите внимание, что версия 0x0500 соответствует Windows 2000, поэтому в маловероятном случае, если вы захотите поддерживать Windows NT4 или более раннюю версию, или Windows 9x, вам придется переключиться на использование ссылок во время выполнения.

5

Или, если вы получаете ошибки, говорящие о том, что оно переопределено, вы можете использовать это:

#if       _WIN32_WINNT < 0x0500
#undef  _WIN32_WINNT
#define _WIN32_WINNT   0x0500
#endif
#include <windows.h>
1
По вопросам рекламы [email protected]