将 C++ 应用程序从 Visual Studio 2010 升级到 2013 时出现链接器错误。

Posted

技术标签:

【中文标题】将 C++ 应用程序从 Visual Studio 2010 升级到 2013 时出现链接器错误。【英文标题】:Linker error while upgrading a C++ application from Visual Studio 2010 to 2013. 【发布时间】:2014-03-05 23:11:28 【问题描述】:

将 c++ 应用程序从 Visual Studio 2010 升级到 2013 时出现以下错误。

error LNK2019: unresolved external symbol __imp__SysAllocStringByteLen@8 referenced in function "wchar_t * __stdcall CtVbErrorMessage(unsigned long)" (?CtVbErrorMessage@@YGPA_WK@Z)

fatal error LNK1120: 1 unresolved externals

当我将使用 MFC 选项从使用标准 Windows 库更改为在共享 DLL 中使用 MFC 时,我开始收到此错误。

这是发生错误的代码区域。

_DLL_EXPORT_ ( BSTR, CtVbErrorMessage (CtErrorHandle hErr) )


   BSTR     vbstr   = SysAllocStringByteLen("", 0);
   char*        str;
   CEsoError*   p_err   = (CEsoError*)hErr;

   if (p_err)
   
      str = (char*)p_err->GetFullMessage();

      if (str)
        vbstr = SysAllocStringByteLen(str, strlen(str));
   

   return vbstr;

【问题讨论】:

【参考方案1】:

看来您的项目现在需要与其他库链接。具体来说,OleAut32.lib

【讨论】:

以上是关于将 C++ 应用程序从 Visual Studio 2010 升级到 2013 时出现链接器错误。的主要内容,如果未能解决你的问题,请参考以下文章

如何将项目从 Visual C++ 6.0 转换为 Visual Studio Express 2010?

使用 Visual Studio 2010 将 libexif 编译为静态库 - 然后从 Visual C++ 项目链接

C++ - 将 C++ 代码从 Visual Studio 移植到 Linux Eclipse IDE 时出现问题

从 Visual Studio C++ 解决方案调用 Python 脚本

从 Visual Studio 2010 (C++) 的错误列表中删除重复项

从 C (Visual Studio) 调用 C++ 类成员函数