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,有可能做到这一点不止一种方法... ).
有任何想法吗?
问题几乎肯定在于预处理两个语句的顺序,而不是与无意中添加Windows Form对象有关.
这篇知识库文章建议:
问题在于使用定义的常量来指定#include指令中的包含文件.在宏完全展开之前正在处理该指令,从而导致错误.
第二个错误似乎证实了这一点,因为它表明预处理器正在搜索具有空名称的包含文件:
fatal error C1083: Cannot open include file: '': No such file or directory
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2695 次 |
| 最近记录: |