EVC平台下
将工程属性由use mfc in a static library 转化为 use mfc in a shared dll以后,出现100多个连接错误,错误提示大概如下:
Linking...
uafxwce.lib(thrdcore.obj) : error LNK2005: "class CWinThread * __cdecl AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,struct _SECURITY_ATTRIBUTES *)" (?AfxBeginThread@@YAPAVCWinThread@@P6AIPAX@Z0HIKPAU_SECURITY_ATTRIBUTES@@@Z) already defined in MFCCE400.lib(mfcce400.dll)
uafxwce.lib(thrdcore.obj) : error LNK2005: "public: virtual void __cdecl CWinThread::Delete(void)" (?Delete@CWinThread@@UAAXXZ) already defined in MFCCE400.lib(mfcce400.dll)
都提示一些MFC函数在MFCCE400.lib中重复定义。但新建一个工程,将工程属性由use mfc in a static library 转化为 use mfc in a shared dll重新编译就不会有问题大侠们来救命哈,焦头烂额中啊原帖地址为:
http://topic.csdn.net/u/20090805/16/371de98d-b117-4c28-b8cf-2f4550187412.html
将工程属性由use mfc in a static library 转化为 use mfc in a shared dll以后,出现100多个连接错误,错误提示大概如下:
Linking...
uafxwce.lib(thrdcore.obj) : error LNK2005: "class CWinThread * __cdecl AfxBeginThread(unsigned int (__cdecl*)(void *),void *,int,unsigned int,unsigned long,struct _SECURITY_ATTRIBUTES *)" (?AfxBeginThread@@YAPAVCWinThread@@P6AIPAX@Z0HIKPAU_SECURITY_ATTRIBUTES@@@Z) already defined in MFCCE400.lib(mfcce400.dll)
uafxwce.lib(thrdcore.obj) : error LNK2005: "public: virtual void __cdecl CWinThread::Delete(void)" (?Delete@CWinThread@@UAAXXZ) already defined in MFCCE400.lib(mfcce400.dll)
都提示一些MFC函数在MFCCE400.lib中重复定义。但新建一个工程,将工程属性由use mfc in a static library 转化为 use mfc in a shared dll重新编译就不会有问题大侠们来救命哈,焦头烂额中啊原帖地址为:
http://topic.csdn.net/u/20090805/16/371de98d-b117-4c28-b8cf-2f4550187412.html
解决方案 »
- List Control调用DeleteAllItems()之后InsertItem()不显示数据
- 关于new CFont 合适 delete的问题
- 请教2个函数的意思!小弟英文烂
- 《急需C++程序员,成都》
- 请问在vc++6.0 中xmlfree()是不是系统函数?
- 用ATL开发ASP组件时参数传递问题
- 怎样改变VC中Static Text Control控件中字体的大小?
- vc6.0 如何得到一个按纽当前的enable状态
- VC能实现控件数组吗?
- Help!声明一个string,然后利用cin>>输入字符串,如何让输入的字符串中包含空格?(我是编程菜鸟)
- release版选择:使用MFC作为静态链接库 出错
- 通过create创建子窗口,第二个参数传入了this为何最后父窗口还是为空
在我的原帖里说明了,需要添加支持Active X控件,需要包含头文件#include <afxdisp.h>
而afxdisp.h是需要定义_AFXDLL的
你的问题是由于引入了静态链接MFC库uafxwce.lib,我查看了引入uafxwce.lib的代码,在afx.h中:
#ifndef _AFXDLL
#ifdef _DEBUG
#pragma comment(lib, "uafxwced.lib")
#else
#pragma comment(lib, "uafxwce.lib")
#endif
#else
#ifdef _DEBUG
#pragma comment(lib, "mfcs42d.lib")
#pragma comment(lib, WCE_MFC_FILENAME(d.lib))
#else
#pragma comment(lib, "mfcs42.lib")
#pragma comment(lib, WCE_MFC_FILENAME(.lib))
#endif
#endif
很明显,是否链接uafxwce.lib是由_AFXDLL控制,而你定义了宏,所以不可能会被链接到工程。我猜测有一个可能,问题由于你的工程没有重新rebuild all导致,删掉你工程下的pch,pdb文件再rebuild all一次试试。
首先感谢这位大侠的热心,这个工程rebuild all了无数次了,错误还是一样
如果这些错误是由“静态链接MFC库uafxwce.lib”引起,那根据你给的这段代码,定义了_AFXDLL的话,这个库uafxwce.lib是不会被链接到工程啊