升级Visual Studio 2022至17.14.11后出现未解析外部符号错误求助
解决VS2022 17.14.11升级后MFC代码未解析外部符号
_WINRT_IMPL_RoOriginateLanguageException@12的问题 可行解决方案
显式添加依赖库
该未解析符号属于runtimeobject.lib,需手动添加到项目链接依赖:- 项目属性路径:
项目属性 -> 链接器 -> 输入 -> 附加依赖项,添加runtimeobject.lib - 或直接在代码中加入:
#pragma comment(lib, "runtimeobject.lib")
- 项目属性路径:
匹配Windows SDK版本
升级VS后默认SDK版本可能变更,确保项目使用的SDK与当前VS版本兼容:- 项目属性路径:
项目属性 -> 常规 -> Windows SDK版本,选择VS17.14.11安装的最新稳定SDK(如10.0.22621.x)
- 项目属性路径:
禁用不必要的WinRT支持
若项目无需WinRT功能,可关闭相关编译选项:- 在项目属性
C/C++ -> 预处理器 -> 预处理器定义中添加WINRT_DISABLE_LANGUAGE_EXCEPTIONS,阻止WinRT异常相关代码生成
- 在项目属性
问题原因
VS2022 17.14.11版本调整了WinRT组件的链接依赖规则,原本隐式链接的runtimeobject.lib不再自动引入,导致未修改的旧MFC项目出现链接错误,且该问题具有环境一致性(多台机器升级后均出现)。
内容的提问来源于stack exchange,提问作者liftarn
相关产品推荐
相关产品推荐

