5

Estoy trabajando con una API que tiene #define ed todos sus archivos incluidos. Estoy desarrollando en Visual C++ 2010 Express, y ha estado funcionando bien hasta ahora.Visual C++ Express 2010 de repente no aceptará #includes

Estaba agregando un nuevo archivo cpp al proyecto y accidentalmente agregué un "Windows Form" en su lugar. VC me advirtió que mi proyecto no estaba utilizando CLR en este momento, ¿realmente lo quería? Hice clic en no y agregué el archivo como estaba previsto. Después de eso, sin embargo, mi proyecto ya no se compila.

El código es básicamente lo siguiente:

api_header.h:

#define DEFINED_HEADER_NAME "path/to/header/file.h" 

stdhpf.h:

#include DEFINED_HEADER_NAME 

Como ya he dicho, funcionó bien durante mucho hora. No se puede abrir archivo de inclusión:: Ahora me sale esto:

error C2006: '#include': Se esperaba un nombre de archivo, se encontró 'identifier'
C1083 error grave '': No existe el fichero o directorio

Qué está causando este ? Encontré una publicación que decía que era por haber activado encabezados precompilados, pero revisé Project properties > Configuration properties > C/C++/Precompiled headers, y está desactivada (menciono la ruta de configuración porque soy nuevo en VS, puede haber más de una forma de hacerlo). .).

¿Alguna idea?

Respuesta

7

El problema casi seguro está en el orden en el que las dos instrucciones se procesan previamente, en lugar de tener algo que ver al agregar inadvertidamente un objeto de Windows Form.

This knowledge base article sugiere:

El problema está en el uso de una constante definida para especificar un archivo de inclusión en la directiva #include. La directiva se está procesando antes de que la macro se haya expandido completamente, lo que da como resultado el error.

El segundo error parece confirmar esto, ya que indica el pre-procesador es la búsqueda de un archivo de inclusión con un nombre vacío:

fatal error C1083: Cannot open include file: '': No such file or directory 
0

El orden de sus archivos de inclusión ha cambiado. Quizás Visual Studio insertó un #include "stdhpf.h" en algún lugar antes de su #include "api_header.h".

0

Deshabilitar encabezados precompilados. Debería ayudar.

Cuestiones relacionadas