这是我的情况(我是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 添加到项目中 .
(查看MSDN documentation for IPortableDeviceValues中的"Requirements"部分)
当链接器构建项目时,它正在查找标识符
CLSID_PortableDeviceValues
后面的实现数据 . 此数据位于库PortableDeviceGUIDs.lib中,必须告知链接器使用此库 .您在源代码中包含的头文件仅声明符号“CLSID_PortableDeviceValues”,而不导入其实现 .