使用系统设备枚举器选择捕获设备

时间:2013-05-21 16:43:09

标签: c++ windows qt5

我想使用此链接:http://msdn.microsoft.com/en-us/library/dd377566%28v=VS.85%29.aspx来选择捕获设备。

在Visual Studio上完美运行,但会抛出以下错误QT:

 test.obj : error LNK2005: _main already defined in main.obj
  test.obj : error LNK2019: unresolved external symbol __imp__CoCreateInstance@20   referenced in function "long __cdecl EnumerateDevices(struct _GUID const &,struct IEnumMoniker * *)" (?EnumerateDevices@@YAJABU_GUID@@PAPAUIEnumMoniker@@@Z)
  test.obj : error LNK2019: unresolved external symbol __imp__VariantClear@4 referenced in function "void __cdecl DisplayDeviceInformation(struct IEnumMoniker *)" (?DisplayDeviceInformation@@YAXPAUIEnumMoniker@@@Z)
  test.obj : error LNK2019: unresolved external symbol __imp__VariantInit@4 referenced in function "void __cdecl DisplayDeviceInformation(struct IEnumMoniker *)" (?DisplayDeviceInformation@@YAXPAUIEnumMoniker@@@Z)
 test.obj : error LNK2019: unresolved external symbol __imp__CoUninitialize@0 referenced in function _main
test.obj : error LNK2019: unresolved external symbol __imp__CoInitializeEx@8 referenced in function _main

我正在使用Windows 7& QT 5.0.2。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

在Google上搜索“cocreateinstance unresolved external”并使用返回的第一个链接:

http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/5fc032e1-86d8-43c7-870b-f10599000605/

我发现第三条评论表明要与 “ole32.lib” 相关联。

您对上述评论的回复表明还需要 “oleAut32.lib”

还要确保链接 “strmiids.lib”

总而言之,所需的库是:

  • ole32.lib
  • oleaut32.lib
  • strmiids.lib