一个正常能用的头文件,在MFC新项目中引用报错?

做一个简单的小程序,引用了一个matrix.h的头文件,里面都是模板定义;
在vs2010下控制台程序测试可以正常运行。

后来在mfc下做了一个dlg在添加头文件的时候出现了错误,有大佬说是重复包含头文件,或者相互引用头文件的问题,也有说#include "stdafx.h"这个文件的问题,实在不知道怎么办,恳请各位大佬指点。
图片说明

我在另一个程序中直接引用的,没报错。直接复制过来的内容就有了问题。
包含头文件情况:图片说明

c++

3个回答

不是不能包含,而是matrix.h头文件本身存在语法错误或者它没有重复包含忽略的机制

weixin_43953542
承伤成殇 我在另一个程序中也是这么直接包含的,内容一模一样,那个程序就没有报错,我想应该不是本身存在语法问题吧?请问大佬重复包含忽略的机制是什么?
大约 2 个月之前 回复

你可以看一下你前面include的文件中声明的函数或者类有没有忘记打分号;
我之前出现大量函数重定义大多数是这种原因

weixin_43953542
承伤成殇 回复Kim_小星兴: 感谢,已经解决了,报错的那两段我注释掉之后不影响运行,现在可以用。
大约 2 个月之前 回复
qq_39575645
Kim_小星兴 en,我说的是你其他的的头文件里面可能会出现的语法问题,不是这个matrix.h~就像SR1.h文件里少了一个分号,编译的时候在SR1.h后面include的头文件都有可能报错的.
大约 2 个月之前 回复
qq_39575645
Kim_小星兴 em
大约 2 个月之前 回复
weixin_43953542
承伤成殇 语法错误的话应该不能通过编译,可是我之前另一个程序也直接引用都能正常运行,也是我复制粘贴过去的,实在是不知道为什么
大约 2 个月之前 回复

根据经验,这种问题出现时,加个条件宏就好了。

weixin_43953542
承伤成殇 回复spring20190101: 谢谢,大概明白了,再次感谢
大约 2 个月之前 回复
spring20190101
spring20190101 回复承伤成殇: 都是新手,经验交流而已。因为除了你的这个头文件之外,还引用了其它头文件。有时候头文件里存在层层包含,就会出现这种意想不到的重复定义问题。条件宏就是为处理这种情况设置的。。
大约 2 个月之前 回复
weixin_43953542
承伤成殇 能不能在详细一点呢,我是个新手,麻烦了!
大约 2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

3
.h头文件中为什么不能正确引用iostream.h头文件?
1
jnaerator使用,一个头文件引用另外一个头文件问题.
1
在vs code 中写python时,为什么同样的代码在一个文件里正常运行,在另一个文件里报错
1
在fcntl.h头文件中找不到O_RDWR等open函数的参数
0
Node.js的静态资源模块serve-static,下载时报错,使用时报告为serve-static文件下请求模块报错,求助各位!
1
同一个文件夹导入文件为什么会报错?
1
我在Jenkins上使用MSBuild编译项目至远程文件夹报错.
1
引入头文件,但是报错无法打开文件
2
VC++6.0 MFC创建新的dialog报错
2
QT头文件报错,请问下大家有没有遇到过类似的问题
1
VS2010 头文件在项目中编译正常 单独拿出来使用后编译错误
1
用c3p0连接数据库,为什么同样的配置在Java项目中可以链接,在web项目中就报错了
2
c++引用c# dll,在C++头文件中引用,c# dll和c# namespace,总是提示找不到c# namespace
1
VS中编程想在AutoCAD中插入一个块参照,已经导入CAD库中需要的头文件并且找到相关的函数,但是不知道里面的Password是什么?
1
vc++ mfc ReadSting函数报错
0
linux下pandoc使用自定义的template模板将md文件转换为中文pdf文件-报错问题
2
HT32F52352的例程 头文件里一个看不懂的报错 是什么意思?
1
已经安装了mysql,也有mysql.h头文件,但是g++编译的时候却报错找不到头文件
1
创建springboot项目时,pom.xml文件报错?
1
idea中gradle使用注解处理器生成的代码, 在idea中无法运行,在out文件夹下生成重复类的类会出现报错. 但是可以正常build, 打的jar正常可运行.