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

使用CompareObjectHandles函数时遇LNK2019未解析外部符号问题求助

解决CompareObjectHandles的LNK2019未解析外部符号错误

你遇到的__imp_CompareObjectHandles未解析外部符号问题,在已经包含<handleapi.h>并链接kernel32.lib的情况下,通常由以下几个原因导致,对应解决方法如下:

  • 检查Windows SDK版本:CompareObjectHandles是Windows 10 1703版本(SDK版本10.0.15063.0)才新增的API。如果你的项目使用的SDK版本低于这个,编译器找不到该函数的定义。需要在项目属性的「常规」选项卡中,将「Windows SDK版本」设置为1703或更高版本。

  • 定义正确的Windows版本宏:由于该API属于较新的Windows特性,需要在代码开头或项目预处理器定义中添加_WIN32_WINNT宏,指定至少为Windows 10的版本值:

    #define _WIN32_WINNT 0x0A00 // 对应Windows 10
    #include <handleapi.h>
    

    或者在项目属性的「C/C++ -> 预处理器 -> 预处理器定义」里添加_WIN32_WINNT=0x0A00。

  • 确认函数名拼写与大小写:确保代码中调用的是CompareObjectHandles,Windows API是大小写敏感的,拼写错误会导致链接器找不到符号。

  • 手动添加kernel32.lib到依赖项:有时候#pragma comment(lib, "kernel32.lib")可能因为项目设置被忽略,可直接在项目属性的「链接器 -> 输入 -> 附加依赖项」中添加kernel32.lib,强制链接该库。

  • 升级平台工具集:如果使用的是较旧的Visual Studio平台工具集(比如v140及更早),可能无法正确链接到包含新API的kernel32.lib版本。可以在项目属性的「常规」选项卡中,将「平台工具集」升级到v142或更高版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:30:08