在6.0下面可以正常编译,但是升级到2008后就不行了
1>atlsd.lib(atltypes.obj) : error LNK2005: "public: __thiscall CSize::CSize(void)" (??0CSize@@QAE@XZ) 已经在 uafxcwd.lib(afxinl2.obj) 中定义
1>atlsd.lib(atltypes.obj) : error LNK2005: "public: __thiscall CSize::CSize(int,int)" (??0CSize@@QAE@HH@Z) 已经在 uafxcwd.lib(afxinl2.obj) 中定义
1>atlsd.lib(atltypes.obj) : error LNK2005: "public: __thiscall CSize::CSize(struct tagSIZE)" (??0CSize@@QAE@UtagSIZE@@@Z) 已经在 uafxcwd.lib(afxinl2.obj) 中定义
1>atlsd.lib(atltypes.obj) : error LNK2005: "public: __thiscall CSize::CSize(struct tagPOINT)" (??0CSize@@QAE@UtagPOINT@@@Z) 已经在 uafxcwd.lib(afxinl2.obj) 中定义

1>LINK : warning LNK4199: 已忽略 /DELAYLOAD:OleAcc.dll;未找到来自 OleAcc.dll 的导入
1>SmartPointerDlg.obj : error LNK2001: 无法解析的外部符号 "protected: static struct AFX_MSGMAP const * __stdcall CDialog::GetThisMessageMap(void)" (?GetThisMessageMap@CDialog@@KGPBUAFX_MSGMAP@@XZ)
1>SpotlightDlg.obj : error LNK2001: 无法解析的外部符号 "protected: static struct AFX_MSGMAP const * __stdcall CDialog::GetThisMessageMap(void)" (?GetThisMessageMap@CDialog@@KGPBUAFX_MSGMAP@@XZ)
1>GetID.obj : error LNK2001: 无法解析的外部符号 "protected: static struct AFX_MSGMAP const * __stdcall CDialog::GetThisMessageMap(void)" (?GetThisMessageMap@CDialog@@KGPBUAFX_MSGMAP@@XZ)
1>GlassDialog.obj : error LNK2001: 无法解析的外部符号 "protected: static struct AFX_MSGMAP const * __stdcall CDialog::GetThisMessageMap(void)" (?GetThisMessageMap@CDialog@@KGPBUAFX_MSGMAP@@XZ)
1>PPTToolDirection.obj : error LNK2001: 无法解析的外部符号 "protected: static struct AFX_MSGMAP const * __stdcall CDialog::GetThisMessageMap(void)" (?GetThisMessageMap@CDialog@@KGPBUAFX_MSGMAP@@XZ)
1>PPTToolDlg.obj : error LNK2001: 无法解析的外部符号 "protected: static struct AFX_MSGMAP const * __stdcall CDialog::GetThisMessageMap(void)" (?GetThisMessageMap@CDialog@@KGPBUAFX_MSGMAP@@XZ)求帮助

解决方案 »

  1.   

    我也觉得是库冲突了 但是我不知道是哪个冲突了 该怎么修改
    我用的是静态连接MFC,链接UAFXCWD.LIB setupapi.lib Psapi.lib Winmm.lib 
      

  2.   

    1>uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMT.lib(new.obj) 中定义
    1>uafxcw.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) 已经在 LIBCMT.lib(delete.obj) 中定义
    1>uafxcw.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) 已经在 LIBCMT.lib(new2.obj) 中定义
    1>../bin\TLLogger_Unicode_Release.exe : fatal error LNK1169: 找到一个或多个多重定义的符号 解决方法:http://blog.vckbase.com/zaboli/archive/2010/02/05/40921.aspx原因:CRT 库对 new、delete 和 DllMain 函数使用弱外部链接。MFC 库也包含 new、delete 和 DllMain 函数。这些函数要求先链接 MFC 库,然后再链接 CRT 库。当 C 运行时 (CRT) 库和 Microsoft 基础类 (MFC) 库的链接顺序有误时,可能会出现以下 LNK2005 错误。解决方法:强制链接器按照正确的顺序链接库!project->properties->Linker->Ignore Specific Library 添加 uafxcwd.lib Libcmtd.lib在Additional Dependencied添加uafxcwd.lib Libcmtd.lib
      

  3.   

    但是没有2005错误的时候会出现LNK2001: 无法解析的外部符号