如上所述,我想使用2个winapi函数进行注册表访问。 我使用QT Creator 3.2.0,MSVC2010 build,Windows SDK v7.1和调试工具安装了QT 5.3.2。在MSVC2010动态QT中使用RegOpenKey和RegEnumKey
windows.h
包括在我的项目,这两个功能都见过,但连接失败,
usb_part.obj:-1: error: LNK2019: unresolved external symbol [email protected] referenced in function "bool __cdecl GetUsbName(class QString &)" ([email protected]@[email protected]@@Z)
usb_part.obj:-1: error: LNK2019: unresolved external symbol [email protected] referenced in function "bool __cdecl GetUsbName(class QString &)" ([email protected]@[email protected]@@Z)
我想它会尝试动态链接这些功能(hense的“__imp”),我怎么可以将其设置为链接对静态.lib
文件?或者,如果这对于动态构建的QT来说是不可能的,那么我应该如何将这些链接与.dll
?
UPD: 尝试这些:
LIBS += -ladvapi32
LIBS += AdvAPI32.Lib
LIBS += "c:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\AdvAPI32.Lib"
无济于事
UPD2: 问题是改变.pro
后QT不重建makefile文件。删除makefile后,LIBS += -ladvapi32
工作正常。认为“干净的项目”这样做,但事实证明,它没有。
尝试过,并且它的不同版本(如指定完整路径),仍然没有结果(请参阅更新) – netnazgul 2014-09-30 07:05:20
尝试手动删除生成的makefile,然后通过运行qmake再次创建它们,或者您可以尝试手动查找生成的makefiles中指定的库,以便不手动删除它们 – 2014-09-30 07:14:51
好的,手动删除makefiles似乎在这里起了作用,'LIBS + = -ladvapi32'现在可以工作。我只是想知道为什么QT不会在“Clean project”上删除它们。 – netnazgul 2014-09-30 07:25:52