Pregunta

#include<windows.h> ya se han añadido, así que ¿por qué el GCC-mingw32 Compilador informó que 'GetConsoleWindow' was not declared in this scope ?

Aquí está mi código:

#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;
}

Gracias.^^

¿Fue útil?

Solución

De msdn:

Para compilar una aplicación que utiliza esta función, definir _WIN32_WINNT como 0x0500 o más tarde.

Así que usted puede intentar sustituir

#include<windows.h>

con

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

O incluir SDKDDKVer.h desde el SDK de Windows:

Incluyendo SDKDDKVer.h define el máximo disponible de la plataforma de Windows.

Otros consejos

El documentación dice:

Para compilar una aplicación que utiliza esta función, definir _WIN32_WINNT como 0x0500 o más tarde.

Sospecho que usted no lo hizo.

Es necesario definir el condicional antes de incluir windows.h.Tenga en cuenta que la versión 0x0500 corresponde a Windows 2000, por lo que en el improbable caso de que usted desee compatible con Windows NT4 o anterior, o Windows 9x, entonces usted necesitará cambiar a la utilización de tiempo de ejecución de la vinculación de lugar.

O, si usted recibe los errores diciendo que es redefinido, puedes usar este :

#if       _WIN32_WINNT < 0x0500
  #undef  _WIN32_WINNT
  #define _WIN32_WINNT   0x0500
#endif
#include <windows.h> 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top