求教一个头文件调用出错的问题 我自己定义了一个头文件,里面定义了几个用的较多的函数,在Class A和Class B里要调用,A调用这个头文件没问题,为什么在B调用的时候就会有错误,错误指向A.obj,说头文件里的函数already defined in BMPATL.obj,why?请教各位了~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那么,你是在A和B中都#include 了这个头文件吗?而且B中#include 了A的头文件?既然你的头文件里只是定义了函数,那就没有必要在A和B的头文件中包含了,在cpp文件中包含就足够了。 解决这个问题和以后可能出现的类似问题,建议楼主在每一个头文件里都使用#ifdef的预处理指令(请参见VC的Class Winzard生成的各个头文件,注意要使用全局唯一的宏名),这样能保证多次引用这个头文件时编译器只编译一次,并且你就不用花心思去看是否有多次包含同一个头文件了。 看到happyparrot的回答想问一个问题,在cpp中包含头文件和在头文件中包含头文件具体的区别是什么,对编译的速度和其他方面有什么大的影响?洗耳恭听! 你只能把函数的声明放在头文件里, 函数的定义要放在*.cpp里,比如myfunc.hvoid foo();myfunc.cpp;void foo(){ ...}然后把myfunc.cpp放到工程里, 在A和B中都包含myfunc.h 重新写一个类,把原先你定义在头文件的函数写到新类中,然后class A 和 class B 中都包含这个新类的头文件,然后A ,B 调用函数都没有问题了 求教 关于OpenProcess问题 SOCKET 多线程问题 VFW中capCaptureSequence()的一个简单问题??? 怎样用VC打开一个应用程序? 求可以下载的MSDN6.0 实在找不到什么原因,求救各位高手 如何将std 中的 sting 转化为CString 一个简单问题,送分! 有什么办法得到FrameWnd 的ID号 ocx视频控件怎么实现双击全屏的功能呢? 请问怎样写,能让鼠标点CListCtrl时点中的行整行变蓝? 类型问题
myfunc.hvoid foo();
myfunc.cpp;void foo()
{
...
}
然后把myfunc.cpp放到工程里, 在A和B中都包含myfunc.h