VS2010 VC++ 编译出错 ---error LNK2005: public: virtual __thiscall CMemDC::~CMemDC(void)
生活随笔
收集整理的這篇文章主要介紹了
VS2010 VC++ 编译出错 ---error LNK2005: public: virtual __thiscall CMemDC::~CMemDC(void)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
uafxcwd.lib(afxglobals.obj) error LNK2005:?"public: virtual __thiscall CMemDC::~CMemDC(void)"?(??1CMemDC@@UAE@XZ) already defined in MultiColorPlotCtrl.obj
上面是意思是,連接器說(shuō),我找到了兩個(gè)定義,一個(gè)在 uafxcwd.lib(afxglobals.obj)里面,還有一個(gè)在MultiColorPlotCtrl.obj 。
工程中有一個(gè)MemDC.h文件,里面定義了一個(gè)CMemDC類,不巧的是,VS2010的MFC新增了這個(gè)類,所以鏈接時(shí)會(huì)出問(wèn)題。
那怎么解決了?有如下辦法:
1 修改MFC中CMemDC的名字。這個(gè)明顯不行。。。
2 將emule中的CMemDC改個(gè)名字,這個(gè)方法可以,可是我找了下,貌似用這個(gè)類的文件還不少。不甘心一條條改,于是想出下面的方法。。。
3 增加一個(gè)宏定義,
#define CMemDC XCMemDC
將上面的語(yǔ)句加到stdafx.h的最后。(也可以在工程屬性頁(yè)中以編譯器指令的形式定義宏,格式為 /D "CMemDC=XCMemDC")。
總結(jié)
以上是生活随笔為你收集整理的VS2010 VC++ 编译出错 ---error LNK2005: public: virtual __thiscall CMemDC::~CMemDC(void)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java实验10流_实验9 Java输入
- 下一篇: C/C++ 踩过的坑和防御式编程