问题
Upon using PKEY_Device_FriendlyName, I'm getting the following errors:
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
What's a very simple way to clear these errors? I'm including functiondiscovery.h and functiondiscoverykeys.h. Also the path in Project->Properties...->Configuration Properties->C/C++->General->Additional Include Directories is correct.
EDIT: One thing of interest is that the errors are mentioning: _PKEY_Device_FriendlyName, not PKEY_Device_FriendlyName. But I'm only using the latter in my program.
回答1:
PKEY_Device_FriendlyName
resides in uuid.lib
library. So you need to add a line to your source code:
#pragma comment(lib, "uuid.lib")
Most often, you can check with MSDN which library you need to reference.
回答2:
Old post, but hopefully this answer will save someone some time.
I was having the same problem with DEVPKEY properties - like DEVPKEY_Device_FriendlyName. I got a very similar link error. I stumbled upon the answer in comments here: Referencing GUIDs
Basically, add an #include before the include for things like devpkey.h where the property keys are defined.
So, at the top of my file I have:
#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.
来源:https://stackoverflow.com/questions/9773822/how-to-fix-a-linker-error-with-pkey-device-friendlyname