这是我的情况(我对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”中找到,我也导入了该库。
我没有遇到任何编译器错误,但遇到上面提到的链接器错误..
有人可以帮帮我吗。我无法解决这个问题。
答案 0 :(得分:3)
您需要在项目中添加 PortableDeviceGUIDs.lib (查看MSDN documentation for IPortableDeviceValues)
中的“要求”部分当链接器构建项目时,它正在寻找标识符CLSID_PortableDeviceValues
后面的实现数据。此数据位于库PortableDeviceGUIDs.lib中,必须告知链接器使用此库。
源代码中包含的头文件仅声明符号“CLSID_PortableDeviceValues”,而不导入其实现。