You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

引入winrt/Windows.Gaming.Input.h后出现链接器未解析错误

解决C++/WinRT引入Windows.Gaming.Input时的LNK2028/LNK2019未解析符号错误

针对你遇到的问题,直接给出排查和解决步骤:

  • 强制链接WindowsApp.lib:所有C++/WinRT的核心符号都在这个库中,未解析的WINRT_开头函数大概率是因为没链接它。可以在代码开头添加:

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

    或者在项目属性→链接器→输入→附加依赖项中加入windowsapp.lib。

  • 确认C++/WinRT项目配置:

    • 确保已通过NuGet安装Microsoft.Windows.CppWinRT包,手动引入头文件容易遗漏底层配置;
    • 检查项目属性→常规→Windows SDK版本,必须是Windows 10 1809(10.0.17763.0)及以上,Windows.Gaming.Input的WinRT API在该版本后才完整支持;
    • 再次确认C语言标准已设为C17或更高,且编译选项中该设置已生效(部分项目可能在子项目中覆盖了全局设置)。
  • 处理C++/CLI混合模式冲突:
    如果你是在C++/CLI项目中混用C++/WinRT,需要注意:

    • 将WinRT相关代码放在单独的.cpp文件中,给这些文件禁用/clr编译选项(项目属性→C/C++→常规→公共语言运行时支持→选择“无”);
    • 避免在CLI代码中直接调用WinRT对象,通过纯C++层做中转交互。
  • 调整头文件引入顺序:
    尝试在所有WinRT头文件之前先引入基础头:

    #include <winrt/base.h>
    #include <winrt/Windows.Gaming.Input.h>
    

内容的提问来源于stack exchange,提问作者Doshorte Dovencio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 09:33:30