error LNK2005: __pRawDllMain already defined in UiPlugin.obj

来源:互联网 发布:linux如何查看内核日志 编辑:程序博客网 时间:2024/06/13 10:45

今天在弄UI插件, 建立view只能在主程序中建立, 中间在做试验,再编译突然出现LNK2005.
来的突然,中间成果又没有提交svn. 调试了半天作罢, 没搞定.

现在,我改的少,突然发现编译为啥出现LNK2005了.

Linking...mfcs42d.lib(dllmodul.obj) : error LNK2005: __pRawDllMain already defined in UiPlugin.objmfcs42d.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in UiPlugin.objmfcs42d.lib(dllmodul.obj) : error LNK2005: __pRawDllMain already defined in UiPlugin.objmfcs42d.lib(dllmodul.obj) : warning LNK4006: _DllMain@12 already defined in UiPlugin.obj; second definition ignoredmfcs42d.lib(dllmodul.obj) : warning LNK4006: __pRawDllMain already defined in UiPlugin.obj; second definition ignored

原来我在试验,到底能不能在DLL中建立一个view给主程序传过去(CRuntimeClass或者包装类TVisualObject指针). 因为是不能,看见View Create时模块状态已经不对了. 就试着在导出函数入口处加了 AFX_MANAGE_STATE(AfxGetStaticModuleState());
然后就编译不过, LNK2005.

DLL是MFC导出DLL(第三种MFCDLL).
MFC导出DLL中是有DllMain的.

AFX_MANAGE_STATE 只用在MFC正规DLL动态连接MFC库中的导出函数.
以后有时间,再看看AFX_MANAGE_STATE.

0 0
原创粉丝点击