2013-10-30 87 views
0

这是我的情况(我很新的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”中找到,我也导入了该库。

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

是否有人可以帮助我在这里。我无法解决此问题..

+1

您还导入了哪个库? * PortableDeviceGUIDs.lib *? – elgonzo

+0

我只是在代码中导入PortableDeviceTypes.h .. –

+0

糟糕,我导入了你提到的库,它的工作!非常感谢 –

回答

3

您需要将PortableDeviceGUIDs.lib添加到您的项目中。
(查找在MSDN documentation for IPortableDeviceValues节“要求”)

当连接建立你的项目,它正在寻找那就是标识符CLSID_PortableDeviceValues背后的实现数据。该数据位于PortableDeviceGUIDs.lib库中,并且必须告知链接程序使用此库。

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

+0

谢谢!我试图让WpdApiSample与VS2010一起工作,并且在编译它时显示了这些错误。该项目已更新并且没有正确的配置。顺便说一下,我对C++非常感兴趣。 – LogoS