关于visual studio:C ++项目中未解析的外部符号

Unresolved external symbols in C++ project

这是我的情况(我对C++ MFC编码非常新,我正在调试一个现有的应用程序项目)

我在代码中使用此行(在Visual Studio 2012 MFC项目中)

CoCreateInstance(CLSID_PortableDeviceValues, NULL,
CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&x));

当我运行项目时,我得到一个这样的链接器错误

error LNK2001: unresolved external symbol _CLSID_PortableDeviceValues

我在代码中引用的所有clsid值都会发生这种情况。这样地

error LNK2001: unresolved external symbol
_CLSID_PortableDeviceKeyCollection

error LNK2001: unresolved external symbol _IID_IPortableDeviceEventCallback

error LNK2001: unresolved external symbol _CLSID_PortableDeviceManager

error LNK2001: unresolved external symbol _CLSID_PortableDeviceServiceFTM

我检查了"clsid_portabledevicevalues"的声明,它在"portabledevicetypes.h"中找到,我也导入了该库。

我没有得到任何编译器错误,但会遇到上面提到的链接器错误。

有人能帮我一下吗?我解决不了这个问题。


您需要将portabledeviceguids.lib添加到项目中。(有关iportabledevicevalues,请参阅msdn文档中的"要求"一节)

当链接器构建您的项目时,它将查找标识符CLSID_PortableDeviceValues后面的实现数据。此数据位于library portabledeviceguids.lib中,必须告知链接器使用此库。

源代码中包含的头文件只声明符号"clsid_portabledevicevalues",而不导入其实现。