将COM库加载到Qt中

时间:2016-03-28 03:52:56

标签: c++ qt skype4com

我可以将Skype COM库(Skype4COM.dll)加载到C ++ visual studio项目中,以下是执行此操作的代码:

#import "C:\Program Files (x86)\Common Files\Skype\Skype4COM.dll" 
using namespace SKYPE4COMLib;

int main(int argc, char* argv[]) 
{
    CoInitialize(NULL);
    ISkypePtr pSkype(__uuidof(Skype));
    pSkype->Attach(6, VARIANT_TRUE);

    IChatMessage *message;
    message = pSkype->SendMessage(_bstr_t(L"user_name"), _bstr_t(L"Hello"));
    printf("%s sent message", (char *)message->FromHandle);

    pSkype = NULL;
    CoUninitialize();
    return 0;
}

有没有办法将COM库加载到Qt?因为使用Skype的库在C ++中创建GUI会很好。

1 个答案:

答案 0 :(得分:0)

  

有没有办法加载并将 COM库用到Qt?

  1. 删除所有例程COM(un)初始化,例如的CoInitialize / CoUnitialize。
  2. 查看Qutlook Example (ActiveQt)
  3. 使用YourProject.pro文件或dumpcpp工具中的TYPELIBS语句实现自己的COM接口导入。
  4. 请注意,Qt拥有的dumpcpp实用程序提供了包装到自己的Qt QAxObject / QAxWidget类的COM对象的便利性,并不是非常可靠,并且它的导入在Qt框架版本之间有所不同。例如,在将项目从Qt 5.3转换为Qt 5.5时,我不得不重写相当多的代码。我还混合了Qt和ATL技术。

    如果您有更具体的问题,我们可能会根据经验提出答案。