ATL里使用静态库的问题
IID 2002-06-17 09:06:34 我的工程里需要调用MFC编写的静态库,我试作了一个MFC的Dialog工程,连接静态库,编联和调用库函数都没问题。
可是在ATL工程里(支持MFC)使用,工程设置general选项里选用支持USING MFC AS A STAIC DLL总是出现如下类似错误:
Linking...
nafxcwd.lib(afxmem.obj) : error LNK2005: "public: static void __stdcall CObject::operator delete(void *)" (??3CObject@@SGXPAX@Z) already defined in Gm30XStatic.lib(testgraphx.obj)
nafxcwd.lib(objcore.obj) : error LNK2005: "public: virtual void __thiscall CObject::AssertValid(void)const " (?AssertValid@CObject@@UBEXXZ) already defined in Gm30XStatic.lib(TRUEFONT.OBJ)
nafxcwd.lib(objcore.obj) : error LNK2005: "public: virtual void __thiscall CObject::Dump(class CDumpContext &)const " (?Dump@CObject@@UBEXAAVCDumpContext@@@Z) already defined in Gm30XStatic.lib(TRUEFONT.OBJ)
nafxcwd.lib(afxinl1.obj) : error LNK2005: "public: virtual __thiscall CObject::~CObject(void)" (??1CObject@@UAE@XZ) already defined in Gm30XStatic.lib(TRUEFONT.OBJ)
好象是重定义的问题.
使用工程设置general选项里选用支持USING MFC AS A SHARED DLL 会弹出一个ATLASSERT ,说是在注册时atlbase.h的5808行出错,我查了一下果然有ATLASSERT ,接着忽略掉,还会弹出一个ATLASSERT,再忽略编译结束。显示没有错误。
!
不知哪位仁兄遇到过类似问题,或对此问题有独到见解,小第深表感激!