Qt篇——项目中引入setupapi.h与第三方相机库冲突

        在未使用第三方相机库时,项目正常使用setupapi.h,但导入第三方相机库后编译报错,提示以下错误:

serialenum.obj : error LNK2019: 无法解析的外部符号 __imp__SetupDiEnumDeviceInfo@12,该符号在函数 "public: void __thiscall CamSerialEnum::GetHardwareList(void)" (?GetHardwareList@CamSerialEnum@@QAEXXZ) 中被引用 serialenum.obj : error LNK2019: 无法解析的外部符号 __imp__SetupDiDestroyDeviceInfoList@4,该符号在函数 "public: void __thiscall CamSerialEnum::GetHardwareList(void)" (?GetHardwareList@CamSerialEnum@@QAEXXZ) 中被引用 serialenum.obj : error LNK2019: 无法解析的外部符号 __imp__SetupDiGetClassDevsW@16,该符号在函数 "public: void __thiscall CamSerialEnum::GetHardwareList(void)" (?GetHardwareList@CamSerialEnum@@QAEXXZ) 中被引用 serialenum.obj : error LNK2019: 无法解析的外部符号 __imp__SetupDiGetDeviceRegistryPropertyW@28,该符号在函数 "bool __cdecl GetDeviceProperty(void *,struct _SP_DEVINFO_DATA *,unsigned long,wchar_t *,unsigned long,unsigned long *)" (?GetDeviceProperty@@YA_NPAXPAU_SP_DEVINFO_DATA@@KPA_WKPAK@Z) 中被引用

        是因为使用第三方相机前需要安装它的驱动,项目在引入它的SDK库时,第三方相机也使用到了setupapi.h,而第三方相机使用的是编译到自己驱动里面去的Setupapi.lib(可能版本太老或屏蔽了部分接口),这导致项目中使用setupapi.h也找到了相机的驱动,导致无法定位到相应的函数。

        解决办法:在项目中使用setupapi.h的地方加下面这句代码即可:        

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

注:上面这种方式可能在windows11或者其他mingw版本上不生效,那么可以在.pro文件中添加如下配置。

LIBS += -lSetupapi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

易Yi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值