使用CM_Get_DevNode_Property时DEVPKEY_Device_DeviceDesc未声明如何解决?
编译报错
DEVPKEY_Device_DeviceDesc未声明的解决步骤 - 补充包含缺失的头文件
DEVPKEY_前缀的设备属性常量定义不在cfgmgr32.h中,需要额外引入devpropdef.h、devpkey.h两个头文件,且必须保证devpropdef.h在devpkey.h之前引入。 - 提前定义Windows版本适配宏
这类设备属性API是Windows Vista及以上版本才支持的,需要在所有Windows系统头文件引入之前,先声明最低支持的Windows版本:#define WINVER 0x0600 #define _WIN32_WINNT 0x0600 - 补充GUID初始化相关声明
为避免后续出现GUID相关的链接错误,建议在引入系统头文件前先包含initguid.h,或者提前定义INITGUID宏。 - 可选:更新Windows SDK版本
如果完成上述操作仍报错,检查你使用的Windows SDK版本是否过旧,升级到适配目标Windows版本的SDK即可。
正确的头文件引入示例
// 声明最低支持Windows Vista #define WINVER 0x0600 #define _WIN32_WINNT 0x0600 #include <initguid.h> #include <Windows.h> #include <devpropdef.h> #include <devpkey.h> #include <cfgmgr32.h> // 自动链接依赖库 #pragma comment(lib, "Cfgmgr32.lib")
完成以上配置后,即可正常调用CM_Get_DevNode_Property传入&DEVPKEY_Device_DeviceDesc等属性常量获取设备信息。
内容的提问来源于stack exchange,提问作者Damn Vegetables
相关产品推荐
相关产品推荐

