1>nafxcw.lib(afxglobals.obj) : error LNK2005: "public: virtual __thiscall CMemDC::~CMemDC(void)" (??1CMemDC@@UAE@XZ) 已经在 XScrollBar.obj 中定义
1>D:\hp.exe:fatal error LNK1169: 找到一个或多个多重定义的符号
祝所有CSDN朋友新年快乐,兔年大吉,六六大顺!
10 个解决方案
#1
看它的提示消息,是这个析构函数重复定义了啊,你是不是在你这个类里,重新声明了一个析构函数啊?
试过在 VC6 里编译么?是只在VC2010 编译不通过还是咋滴?
#2
或者,你试试,清除所有编译生成的文件(包括临时文件),然后重新生成方案试试?以前在VC6.0试过,这样重新编译后有可能避免这个错误。
#3
正常情况下,应该不会出这个问题啊,是不是你的新类里,没有设置只能包含一次?然后被多次包含而导致重复了?
#4
在VS2008中都编译通过了,只有在VS2010中通不过,但加/force可以通过,但这样程序性能不佳。
#5
有一次俺不知道怎么弄的,不是使用/FORCE:MULTIPLE,反正调整过头文件的顺序,弄好了,现象一样,但是不是2010。
#6
我也觉得是包含顺序所导致的问题,正在努力调整,望高手支招,谢了。
#7
问题解决了,原来VC2010已经包含了自己实现的CMemDC类,所以需要把自己编写的或者引用第三方库的CMemDC改名,否则错误难消。
#8
恩,有用,编译电驴有同样的问题
#9
学习....
#10
CMemDC类在VC2010的MFC中已经包含:afxglobals.h(nafxcwd.lib)
所以这个名字将不用用于此自定义类了.将其改个名字即可继续使用.
#1
看它的提示消息,是这个析构函数重复定义了啊,你是不是在你这个类里,重新声明了一个析构函数啊?
试过在 VC6 里编译么?是只在VC2010 编译不通过还是咋滴?
#2
或者,你试试,清除所有编译生成的文件(包括临时文件),然后重新生成方案试试?以前在VC6.0试过,这样重新编译后有可能避免这个错误。
#3
正常情况下,应该不会出这个问题啊,是不是你的新类里,没有设置只能包含一次?然后被多次包含而导致重复了?
#4
在VS2008中都编译通过了,只有在VS2010中通不过,但加/force可以通过,但这样程序性能不佳。
#5
有一次俺不知道怎么弄的,不是使用/FORCE:MULTIPLE,反正调整过头文件的顺序,弄好了,现象一样,但是不是2010。
#6
我也觉得是包含顺序所导致的问题,正在努力调整,望高手支招,谢了。
#7
问题解决了,原来VC2010已经包含了自己实现的CMemDC类,所以需要把自己编写的或者引用第三方库的CMemDC改名,否则错误难消。
#8
恩,有用,编译电驴有同样的问题
#9
学习....
#10
CMemDC类在VC2010的MFC中已经包含:afxglobals.h(nafxcwd.lib)
所以这个名字将不用用于此自定义类了.将其改个名字即可继续使用.