自己写了一个类,但是编译出了如下错误,通不过,请教各位!

Amao 2001-02-09 11:32:00
Bmap_v2View.obj : error LNK2005: "public: void __thiscall CMap::Draw(class CDC *)" (?Draw@CMap@@QAEXPAVCDC@@@Z) already defined in Bmap_v2.obj
Bmap_v2View.obj : error LNK2005: "public: int __thiscall CMap::OpenMapFile(class CString)" (?OpenMapFile@CMap@@QAEHVCString@@@Z) already defined in Bmap_v2.obj
Debug/Bmap_v2.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.

其中Bmap_v2是项目名,CMap为自己的类
该如何才好?
...全文
137 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Amao 2001-02-09
  • 打赏
  • 举报
回复
多谢二位,
to lhxx:
在头文件里面加了,可还是不行,
to YuHao:
我用的是一个workspace,一个project
YuHao 2001-02-09
  • 打赏
  • 举报
回复
你的工程里面应该是有一个Bmapv2View.cpp和一个Bmap_v2.cpp文件,看看函数在这两个文件中有没有写重复了.
如果是在同一个WorkSpace里面有两个Project的话,最好是用同样的设置,比如说用Debug就都用Debug,要么就都用Release,而且Use MFC in Shared/Static Library最好也设置成一样,不然就容易出问题.
随风bj 2001-02-09
  • 打赏
  • 举报
回复
出错的原因是指定的函数重复定义了
1.在你的类的头文件中加入(最前面):
#ifndef _MAP_H_
#define _MAP_H_
然后在最后加入
#endif
2.rebulid all
Amao 2001-02-09
  • 打赏
  • 举报
回复
问题解决,我把类的定义和实现放在一起了,
分开放后就可以了。(即分为常用的*.h和*.cpp)

多谢各位!
wooingcn 2001-02-09
  • 打赏
  • 举报
回复
在引用的类的头文件中加入#include "map.h",
而不要在其它地方加入.
心念不空过 2001-02-09
  • 打赏
  • 举报
回复
把框架贴出来吧。比如CMap是从什么类派生的,在类外面定义了那些函数?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧