MFC中使用标准库和MFC库冲突问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013719984/article/details/78846305

原因:库冲突,两个 库执行顺序问题

1,项目-属性-链接器-命令行 /verbose:lib
然后编译,可以看到查找 库的过程(我写下我自己的log)
正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\OLDNAMES.lib:
1> 正在搜索 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\lib\uafxcwd.lib:
1>uafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 已经在 LIBCMTD.lib(dllmain.obj) 中定义
1>uafxcwd.lib(afxmem.obj) : error LNK2005: “void * __cdecl operator new(unsigned int)” (??2@YAPAXI@Z) 已经在 LIBCMTD.lib(new.obj) 中定义
1>uafxcwd.lib(afxmem.obj) : error LNK2005: “void __cdecl operator delete(void *)” (??3@YAXPAX@Z) 已经在 LIBCMTD.lib(dbgdel.obj) 中定义
1>uafxcwd.lib(afxmem.obj) : error LNK2005: “void * __cdecl operator new[](unsigned int)” (??_U@YAPAXI@Z) 已经在 libcpmtd.lib(newaop.obj) 中定义
1>uafxcwd.lib(afxmem.obj) : error LNK2005: “void __cdecl operator delete[](void *)” (??_V@YAXPAX@Z) 已经在 LIBCMTD.lib(delete2.obj) 中定义
1> 正在搜索 C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\lib\kernel32.lib:

从 上面可以看出来那两个库冲突了
2,解决方法:
项目-属性-链接器-附加依赖项中加入
uafxcwd.lib
LIBCMTD.lib
忽略特定默认库中加入
LIBCMTD.lib
uafxcwd.lib

猜你喜欢

转载自blog.csdn.net/u013719984/article/details/78846305