如何使用PKEY_Device_FriendlyName修复链接器错误

时间:2012-03-19 16:19:18

标签: c++ linker visual-studio-2005

使用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。但我只是在我的程序中使用后者。

3 个答案:

答案 0 :(得分:5)

旧帖子,但希望这个答案可以节省一些时间。

我遇到了与DEVPKEY属性相同的问题 - 比如DEVPKEY_Device_FriendlyName。我有一个非常相似的链接错误。我在这里的评论中偶然发现了答案: Referencing GUIDs

基本上,在包括devpkey.h之类的东西之前添加一个#include,其中定义了属性键。

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

#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.   

答案 1 :(得分:1)

根据microsoft docs

#include <functiondiscoverykeys.h>

答案 2 :(得分:0)

PKEY_Device_FriendlyName位于uuid.lib库中。因此,您需要在源代码中添加一行:

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

通常,您可以向MSDN查询需要引用的库。