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

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

最佳答案

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

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

基本上,在定义属性键的 devpkey.h 之类的 include 之前添加 #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.   

关于c++ - 如何使用 PKEY_Device_FriendlyName 修复链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9773822/

相关文章:

c++ 转换与 if_then_else 控制结构

c++ - 重复和空格

c++ - 过多的链接/库会如何影响编译期间的可执行输出?

c++ - Emscripten链接静态库错误: wasm streaming compile fail: Import 'env.getTempRet0'

c++ - 创建 Visual C++ 中缺少的 GUID 菜单项

.net - VBPROJ/CSPROJ

c++ - 从模板基类继承构造函数而不重复模板参数?

c++ - 对构造函数和析构函数的 undefined reference

visual-studio - 在同一系统上运行 Visual Studio 2005、2008 和 2010

c++ - 析构函数 : virtual or not?