将“MFC的使用:”改成“在静态库中使用MFC”后,程序无法运行了,出了一堆错,如何解决?

部分错误如下:1>nafxcw.lib(docmgr.obj):errorLNK2005:"void__stdcall_AfxAppendFilterSuffix(cla... 部分错误如下:
1>nafxcw.lib(docmgr.obj) : error LNK2005: "void __stdcall _AfxAppendFilterSuffix(class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > > &,struct tagOFNA &,class CDocTemplate *,class ATL::CStringT<char,class StrTraitMFC<char,class ATL::ChTraitsCRT<char> > > *)" (?_AfxAppendFilterSuffix@@YGXAAV?$CStringT@DV?$StrTraitMFC@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@AAUtagOFNA@@PAVCDocTemplate@@PAV12@@Z) 已经在 DocManagerEx.obj 中定义

1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator=(char const *)" (??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z) 已经在 SETerrainMaterialHandler.obj 中定义

1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator=(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z) 已经在 HELLO.obj 中定义

1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "public: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::reserve(unsigned int)" (?reserve@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXI@Z) 已经在 libcpmt.lib(wlocale.obj) 中定义

1>msvcprt.lib(MSVCP90.dll) : error LNK2005: "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl std::operator<<<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_ostream<char,struct std::char_traits<char> > &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??$?6DU?$char_traits@D@std@@V?$allocator@D@1@@std@@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@0@AAV10@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@@Z) 已经在 SESkeletonEx.obj 中定义

1>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _fread 已经在 libcmt.lib(fread.obj) 中定义
1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) 已经在 libcmt.lib(typinfo.obj) 中定义

1>LINK : warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library

1>bin\Release\HELLO.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
展开
 我来答
kaiguo4919ac1
2013-03-12
知道答主
回答量:3
采纳率:0%
帮助的人:3万
展开全部
在Preprocessor中定义_AFXDLL, PROJECT->SETING->C/C++->PREPROCESSOR->定义 _AFXDLL,完毕。
如果它提示:fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
就这样改:
C/C++->Code Generation->Multithread DLL (即实现/MD选项)
百度网友349d18b
2013-03-04 · TA获得超过444个赞
知道小有建树答主
回答量:571
采纳率:50%
帮助的人:370万
展开全部
1.重新编译整个项目.
2.检查是不是包含了其他的第三方库,如果是的话,第三方库也必须用同版本同配置的VC编译.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-03-04
展开全部
和楼上的回答差不多,应该是之前编译的没有清理掉。
可以先清理,再编译一次看看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式