Visual C++ le permite definir varias formas de configurar los archivos de encabezado precompilados. El más común es habilitarlo para TODOS los archivos fuente en el nivel de configuración del proyecto, en Propiedades de configuración/C++/Encabezados precompilados, configurando "Encabezado precompilado", seleccione "Usar". La misma ubicación, configurando "Archivo de encabezado precompilado", suele ser "stdafx.h". Todos los archivos obtendrán esta configuración (por lo tanto, la configuración en el proyecto) EXCEPTO ....
Un archivo es responsable de generar el archivo PCH. Ese archivo suele ser el archivo stdafx.cpp en su proyecto, y normalmente no tiene nada, excepto #include "stdafx.h"
. Configurando Encabezados Precompilados para ESE ÚNICO ARCHIVO, cambie de "Usar" a "Crear". Esto garantiza que si el encabezado principal para PCH no está sincronizado, stdafx.cpp SIEMPRE se compila para regenerar el archivo de datos PCH. Hay otras formas de configurar PCH en Visual Studio, pero esta es la más común.
Habiendo dicho eso, su problema definitivamente es irritante. El nombre de archivo utilizado para cebar el sistema PCH y especificado en las configuraciones "Usar ..." y "Crear ..." arriba de DEBE COINCIDIR CON EL TEXTO EN SU #include EXACTAMENTE.
Por lo tanto, es muy probable que pueda solucionar su problema añadiendo ".." a su proyecto y incluya directorios y eliminando el ".." de su declaración #include. también podría cambiarlo en el nivel de configuración del proyecto para que sea ".. \ stdafx.h" como el encabezado pasante, pero podría ser un problema si tiene jerárquicamente archivos fuente en varias carpetas.
Ah, y si no estaba claro para usted mientras examinaba la configuración de PCH, si NO desea utilizar PCH para ningún archivo fuente específico (y hay razones para no hacerlo a veces) puede desactivarlo para archivos fuente específicos; de lo contrario, asegúrese de tener siempre #include "your-pch-include-file.h" al principio de cada archivo fuente (c/cpp, etc.).
Espero que tomes un descanso.
-1: 'stdafx.h' no es un archivo de sistema. Es un encabezado precompilado. –
No es un tipo de Windows, entonces ¿por qué tiene una extensión .h? –
Porque es un archivo de encabezado. Puede ser precompilado, pero sigue siendo un encabezado. –