如上所述,我想使用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