Как исправить ошибку компоновщика с PKEY_Device_FriendlyName - PullRequest
2 голосов
/ 19 марта 2012

При использовании 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 Включить каталоги является правильным.

РЕДАКТИРОВАТЬ: одна вещь интересна, что ошибки упоминают:_PKEY_Device_FriendlyName, а не PKEY_Device_FriendlyName.Но я использую только последнее в моей программе.

Ответы [ 2 ]

5 голосов
/ 15 февраля 2017

Старый пост, но, надеюсь, этот ответ сэкономит кому-то время.

У меня была такая же проблема со свойствами DEVPKEY - как DEVPKEY_Device_FriendlyName.Я получил очень похожую ошибку ссылки.Я наткнулся на ответ в комментариях здесь: Ссылка на GUID

По сути, добавьте #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.   
0 голосов
/ 19 марта 2012

PKEY_Device_FriendlyName находится в библиотеке uuid.lib. Поэтому вам нужно добавить строку в ваш исходный код:

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

Чаще всего вы можете проверить в MSDN, на какую библиотеку вам нужно ссылаться.

...