1

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

我在我的代码中使用了这一行(在 Visual Studio 2012 MFC 项目中)

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

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

错误 LNK2001:无法解析的外部符号 _CLSID_PortableDeviceValues

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

错误 LNK2001:无法解析的外部符号 _CLSID_PortableDeviceKeyCollection

错误 LNK2001:未解析的外部符号 _IID_IPortableDeviceEventCallback

错误 LNK2001:无法解析的外部符号 _CLSID_PortableDeviceManager

错误 LNK2001:无法解析的外部符号 _CLSID_PortableDeviceServiceFTM

我检查了“CLSID_PortableDeviceValues”的声明,它在“PortableDeviceTypes.h”中找到,我也导入了该库。

我没有收到任何编译器错误,但遇到了上面提到的链接器错误..

有人可以帮我吗?我无法解决这个..

4

1 回答 1

3

您需要将PortableDeviceGUIDs.lib添加到您的项目中。(在IPortableDeviceValues
的 MSDN 文档中查找“要求”部分)

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

您包含在源代码中的头文件仅声明符号“CLSID_PortableDeviceValues”,而不导入其实现。

于 2013-10-30T18:41:34.380 回答