none
求助,我这有个工程项目(开发环境是Visual Studio 2008, 操作系统是Windows XP,使用了旧版MFC42库文件实现)以前曾经多次编译成功过的项目,该项目相关文件无任何改动,开发环境(Windows XP)也没有变化,但现在编译链接后却已经不能通过了,找不到任何原因,请哪个高手帮助解决下这个问题,在此先多谢了 RRS feed

  • 问题

  • ListCtrlBar.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) protected: static struct AFX_MSGMAP const * __stdcall CControlBarExSize::GetThisMessageMap(void)" (__imp_?GetThisMessageMap@CControlBarExSize@@KGPBUAFX_MSGMAP@@XZ),该符号在函数 "protected: static struct AFX_MSGMAP const * __stdcall CListCtrlBar::GetThisMessageMap(void)" (?GetThisMessageMap@CListCtrlBar@@KGPBUAFX_MSGMAP@@XZ) 中被引用 NmtTabFormViewBar.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) protected: static struct AFX_MSGMAP const * __stdcall CControlBarExSize::GetThisMessageMap(void)" (__imp_?GetThisMessageMap@CControlBarExSize@@KGPBUAFX_MSGMAP@@XZ) TabListBar.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) protected: static struct AFX_MSGMAP const * __stdcall CControlBarExSize::GetThisMessageMap(void)" (__imp_?GetThisMessageMap@CControlBarExSize@@KGPBUAFX_MSGMAP@@XZ) TreeBar.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) protected: static struct AFX_MSGMAP const * __stdcall CControlBarExSize::GetThisMessageMap(void)" (__imp_?GetThisMessageMap@CControlBarExSize@@KGPBUAFX_MSGMAP@@XZ) MainFrm.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static struct CRuntimeClass * __stdcall CMDIFrameWndExSizeDock::GetThisClass(void)" (__imp_?GetThisClass@CMDIFrameWndExSizeDock@@SGPAUCRuntimeClass@@XZ),该符号在函数 "protected: static struct CRuntimeClass * __stdcall CMainFrame::_GetBaseClass(void)" (?_GetBaseClass@CMainFrame@@KGPAUCRuntimeClass@@XZ) 中被引用 MainFrm.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) protected: static struct AFX_MSGMAP const * __stdcall CMDIFrameWndExSizeDock::GetThisMessageMap(void)" (__imp_?GetThisMessageMap@CMDIFrameWndExSizeDock@@KGPBUAFX_MSGMAP@@XZ),该符号在函数 "protected: static struct AFX_MSGMAP const * __stdcall CMainFrame::GetThisMessageMap(void)" (?GetThisMessageMap@CMainFrame@@KGPBUAFX_MSGMAP@@XZ) 中被引用 .\Debug/CANopenManager.exe : fatal error LNK1120: 3 个无法解析的外部命令htm” CANopenManager - 7 个错误,1 个警告

    配置环境如下

    头文件目录 $(VCInstallDir)\include

    $(VCInstallDir)\atlmfc\include

    $(WindowsSdkDir)\include

    $(FrameworkSdkDir)\include

    WinDDK目录\Include\mfc

    WinDDK目录\include\crt

    库文件目录 $(VCInstallDir)\lib

    $(VCInstallDir)\atlmfc\lib

    $(WindowsSdkDir)\lib

    $(FrameworkSdkDir)\lib

    WinDDK目录\lib\mfc42

    WinDDK目录\lib\crt




    2016年5月26日 14:37

全部回复

  • 缺少库文件,调用了第三方lib文件,但这个文件不在lib目录中

    在头文件后面加一句静态引用

    #pragma comment(lib,"xx.lib")


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年5月26日 16:36
  • Hi cguanghua

    从错误日志上看是和无法链接到库文件有关,请检查是否有库文件缺失,名称或路径修改的情况。

    1、将相应库文件放到任意库文件目录或工程目录中,在项目属性->链接器->输入->附加依赖项 中添加lib文件。

    2、想Li建议的一样, 使用#pragma comment(lib,"xx.lib") 链接库文件。

    Best Regards,

    Sera Yu


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.

    2016年5月27日 2:56
  • 会不会是您的CControlBarExSize类相关的.cpp文件没有添加到工程中?

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2016年5月27日 6:50
    版主