1>正在链接...
1>nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMT.lib(new.obj) 中定义
1>nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMT.lib(delete.obj) 中定义
1>nafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 LIBCMT.lib(new2.obj) 中定义
1>nafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) 已经在 LIBCMT.lib(delete2.obj) 中定义
1>d:\XXXXXXXX\Test.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
解决方法: 参见 http://support.microsoft.com/kb/148652/zh-cn
原因在于nafxcw和LIBCMT冲突了, 解决方法就是先link nafxcw.lib即可。
具体操作方法: 工程属性 "连接器"->"输入"->"附加依赖项"里面输入"nafxcw.lib",这样VC2008编译时会先链接nafxcw.lib,问题就解决了。
补充一句:这是在使用静态MFC库时, 常常出现的错误。 一般要么是通过改为使用动态MFC库,要么通过上面的方法来解决。
相关推荐
易语言是相当好的开发软件,适用于初学者
解决此问题的方法通常是确保uafxcwd.lib文件位于编译系统能够找到的路径中,或者在项目的链接器设置中指定其位置。如果你没有这个库,可以从其他安装有VC6的系统中复制过来,或者从网上搜索并下载。 在压缩包中,...
静态链接将所有依赖的库文件合并到一个可执行文件中,使得程序可以在没有特定库环境的机器上运行。而动态链接则是在运行时加载所需的库,这样可以节省磁盘空间,但可能因为缺少库文件导致运行失败。 2. **编译过程*...
错误提示:** `nafxcw.lib(appcore.obj):error LNK2001: unresolved external symbol ___argv` **说明:** 此错误可能是由于预处理器宏未正确定义导致的。 **解决方法:** 定义预处理器宏。 - **操作步骤:** - 打开...
- `NAFXCWD.LIB` 和 `NAFXCW.LIB` 分别是MFC静态连接库的调试和发行版本。 - `UAFXCWD.LIB` 和 `UAFXCW.LIB` 分别是带有Unicode支持的MFC静态连接库的调试和发行版本。 - 动态连接库的命名遵循 `_AFXDLL` 的规则,如...
这种命名法在早期的Windows编程中尤其常见,尤其是在使用Visual C++和Microsoft Foundation Classes (MFC)进行开发时。在MFC中,匈牙利命名法有助于提高代码的可读性和一致性。 对于句柄(Handle),匈牙利命名法...