能力值:
( LV2,RANK:10 )
|
-
-
2 楼
我打错字了
//谢谢你敢看这个问题,如果你能解决这个问题,希望能和我联系,我不是一个懒鬼,我想我可以成为你的朋友.
应该是
//谢谢你能看这个问题
发完贴浏览了一下发现有点威胁的味道
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
1>f:\svchost\common/Manager.h(13) : fatal error C1083: 无法打开包括文件:“macros.h”: No such file or directory
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
估计是头文件里有这个函数的完整定义,而这个头文件又被多处cpp文件包含.
养成个习惯,头文件只做声明,cpp文件做这个声明的定义,需要调用此函数的地方,include头文件就可以了.
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我是刚开始学c++,请问头文件里只做声明,cpp文件做这个声明的定义,具体怎么做
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
先举个不好的例子
头文件a.h里有一个Test函数,而且有这个函数的完整定义:
//file:a.h
int Test()
{
return 100;
}
当某个文件某个位置需要调用Test函数,比如然后int i = Test();时,只要在文件开头#include "a.h"就可以了,但是如果多个文件都要调用Test,就会多次包含a.h,Test函数就会在多个文件里被重复定义,就会出现LNK2005的错误.
推荐方法是,准备两个文件,a.h和a.cpp,把它们都添加到工程里,
a.h内容如下:
//file:a.h
int Test();//只做声明
a.cpp内容如下
//file:a.cpp
int Test()
{//负责具体定义和实现
return 100;
}
在其他需要调用Test函数的文件开头,#include "a.h",这样Test就不会被反复定义了.
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
谢谢你的方法,我在别的源文件里找到了方法,由于要改的代码太多,你这个方法我就不试了,
但是还是很谢谢你
|
能力值:
( LV3,RANK:20 )
|
-
-
8 楼
把你在h文件里的函数定义成static. 或inline?试试。
|
|
|