2012-03-19 39 views
0

鏈接錯誤在使用PKEY_Device_FriendlyName,我發現了以下錯誤:如何解決與PKEY_Device_FriendlyName

Error 1 error LNK2001: unresolved external symbol _PKEY_Device_FriendlyName DefaultAudioDeviceCPP.obj 
Error 2 fatal error LNK1120: 1 unresolved externals C:\Users\srobertson\Documents\Visual Studio 2005\Projects\DefaultAudioDeviceCPP\Debug\DefaultAudioDeviceCPP.exe 

什麼是一個非常簡單的方法來清除這些錯誤?我包括functiondiscovery.h和functiondiscoverykeys.h。另外Project-> Properties ...-> Configuration Properties-> C/C++ - > General-> Additional Include Directories中的路徑是正確的。

編輯:有趣的一件事是錯誤提及:_PKEY_Device_FriendlyName,而不是PKEY_Device_FriendlyName。但我只在程序中使用後者。

回答

1

PKEY_Device_FriendlyName駐留在uuid.lib庫中。所以,你需要一個行添加到您的源代碼:

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

大多數情況下,你可以用MSDN檢查您需要引用的庫。

+1

我試着將它添加,但我發現了一種相同的錯誤。 – Panzercrisis 2012-03-19 16:27:48

+0

除此之外,您可能正在使用舊版本的Windows SDK,該SDK尚未具有此符號。 – 2012-03-19 16:29:00

+0

我目前正在使用7.1。 – Panzercrisis 2012-03-19 16:29:41

1

舊的帖子,但希望這個答案會節省一些人一些時間。

我遇到了與DEVPKEY屬性相同的問題 - 比如DEVPKEY_Device_FriendlyName。我有一個非常類似的鏈接錯誤。我在評論中偶然發現了答案在這裏: Referencing GUIDs

基本上添加的#include之前,包括像devpkey.h東西的地方屬性關鍵字定義。

所以,在我的文件的頂部,我有:

#include <setupapi.h> 
#include <initguid.h> // Put this in to get rid of linker errors. 
#include <devpkey.h> // Property keys defined here are now defined inline.