首页 文章

C项目中未解析的外部符号

提问于
浏览
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 回答

  • 3

    您需要将 PortableDeviceGUIDs.lib 添加到项目中 .
    (查看MSDN documentation for IPortableDeviceValues中的"Requirements"部分)

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

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

相关问题