2011-03-22 16 views
9


me da un error al intentar compilar un pequeño programa en C++
error fatal 87 C1189 de error: # error: Windows.H ya incluido. Las aplicaciones MFC no deben #incluir c: \ archivos de programa \ microsoft visual studio 9.0 \ vc \ atlmfc \ include \ afxv_w32.h 16Windows.H ya incluía error

Me aseguré de que windows.h no estuviera incluido en ninguno de los archivos de proyecto que tengo . Estoy usando un estudio visual 2008 IDE

¿Por qué razón?

Respuesta

1

Visual Studio de forma predeterminada profanará su programa con un archivo de encabezados precompilados, que puede contener algo que incluye algo que incluye windows.h. Asegúrate de verificar allí.

+0

encontró que incluir afxwin.h arrojaba el error. Sin embargo, sí requiero afxwin.h para la función AfxGetInstanceHandle() que uso ... ¿hay alguna solución? – coderGeorge

+0

¿usa encabezados precompilados? Si es así, ¿no puedes simplemente #incluir "stdafx.h" para obtener la declaración de AfxGetInstanceHandle()? – stijn

14

por qué es porque algo es incluyendo Windows.h: el compilador no le miente.

Ir al proyecto Propiedades-> Propiedades de configuración-> C/C++ -> Avanzado y establecer Mostrar Incluye en Sí. A continuación, construir, y el compilador le mostrará una lista con todos los archivos incluidos encontrado, y en el orden en que se encuentra la misma, se le dice qué archivo incluye finalmente windows.h

+1

¡Gracias! Encontré el encabezado afxwin.h para incluir windows.h. Sin embargo, necesito este encabezado para AfxGetInstanceHandle que uso. Entonces, requeriría que se incluyera. – coderGeorge

3
#include "afxwin.h"   // MFC core and standard components 
#include "afxext.h"   // MFC extensions 

Agregando estos a mi archivo stdafx.h resuelto ese error ... espero que esto ayude a otra persona.

1

En su proyecto, vaya a Propiedades de configuración-> C/C++ -> Encabezados precompilados. Asegúrese de que la configuración del encabezado precompilado esté establecida en Use (/ Yu).

Esta configuración "Permite la creación o el uso de un encabezado precompilado durante la compilación".

0

El problema que tenía era que el archivo "stdafx.h" se estaba incluyendo en el archivo "StdAfx.h", y el nombre del archivo en Propiedades de configuración-> C/C++ -> Encabezados precompilados nunca se actualizó desde "stdafx .h "a" StdAfx.h ".

Cuestiones relacionadas