Visual C++ Express 2010突然不接受#includes

car*_*ett 5 c++ compiler-errors visual-studio visual-c++ visual-c++-2010-express

我正在使用一个API来编写#define所有包含文件.我正在使用Visual C++ 2010 Express进行开发,到目前为止它一直很好用.

我在项目中添加了一个新的cpp文件,而不小心添加了一个"Windows窗体".VC警告我,我的项目目前没有使用CLR,我真的想要吗?我点击否,并按预期添加了文件.然而,在那之后,我的项目不再编译.

代码看起来基本上是这样的:

api_header.h:

#define DEFINED_HEADER_NAME "path/to/header/file.h"
Run Code Online (Sandbox Code Playgroud)

stdhpf.h:

#include DEFINED_HEADER_NAME
Run Code Online (Sandbox Code Playgroud)

正如我所说,长时间工作正常.现在我明白了:

错误C2006 :: '#include'预期文件名,发现'identifier'
致命错误C1083:无法打开包含文件''::没有这样的文件或目录

是什么造成的?我发现一些职位,说是因为具有开启预编译头,但我检查Project properties > Configuration properties > C/C++ / Precompiled headers,它的关闭(我提到的设置路径,因为我是新来的VS,有可能做到这一点不止一种方法... ).

有任何想法吗?

Cod*_*ray 7

问题几乎肯定在于预处理两个语句的顺序,而不是与无意中添加Windows Form对象有关.

这篇知识库文章建议:

问题在于使用定义的常量来指定#include指令中的包含文件.在宏完全展开之前正在处理该指令,从而导致错误.

第二个错误似乎证实了这一点,因为它表明预处理器正在搜索具有空名称的包含文件:

fatal error C1083: Cannot open include file: '': No such file or directory
Run Code Online (Sandbox Code Playgroud)