【发布时间】:2011-07-25 11:30:58
【问题描述】:
我发现必须从CWinApp 派生我的基本MFC 类并为每个导出的方法使用AFX_MANAGE_STATE(AfxGetStaticModuleState())! (如果 MFC 是动态链接的)
我还想在 MFC dll constr 中使用指向外部本机 C++ 对象的指针(我应该使用扩展 dll - 但是如何使用 CLI 呢???)
有没有人做这种包装的好例子?!
谢谢你,
leon22
【问题讨论】:
-
您的 DLL 中需要哪些特定的 MFC 功能?您可以完全跳过 MFC,或者使用静态链接。 MFC DLL 是否有一些 GUI/资源?
-
@ajay:主要是我需要没有 GUI 的 MFC 的 CString 和 I/O 功能(它是现有代码)!我尝试静态链接 MFC,但出现链接器错误(我在 VS2008 中需要哪些库?)感谢您的帮助!
-
对于
CString类,您不需要链接到 MFC(静态或动态) - 只需#include<atlstr.h> -
我得到:nafxcwd.lib(dllmodul.obj):错误 LNK2005:_DllMain@12 已在 LIBCMTD.lib(dllmain.obj) 1>nafxcwd.lib(afxmem.obj) 中定义:错误 LNK2005 :“void * __cdecl operator new(unsigned int)”(??2@YAPAXI@Z) 已在 LIBCMTD.lib(new.obj) 1>nafxcwd.lib(afxmem.obj) 中定义:错误 LNK2005:“void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已在 LIBCMTD.lib(dbgdel.obj) 1>nafxcwd.lib(afxmem.obj) 中定义:错误 LNK2005:“void __cdecl operator delete[](void * )" (??_V@YAXPAX@Z) 已经在 LIBCMTD.lib(delete2.obj) 中定义,如果我使用 Windows 库(没有 MFC 的静态/动态链接)
-
将
LIBCMTD.lib放入“忽略库”链接器设置中