首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows应用程序示例- ActiveQt注册表中未注册Com服务器(Qt4.7.4)

Windows应用程序示例- ActiveQt注册表中未注册Com服务器(Qt4.7.4)
EN

Stack Overflow用户
提问于 2011-12-15 16:50:26
回答 2查看 1.8K关注 0票数 1

我目前正在尝试使用随Qt安装提供的示例项目Com App (Qt_folder\Examples\4.7\activeqt\comapp)。

我在Windows上使用4.7.4版本,Qt Creator 2.3.0和MinGw编译器。

因此,示例项目可以很好地编译和运行,但是COM服务器信息似乎没有注册到注册表中,因为我无法从任何脚本访问它,而且我在注册表中也找不到UID,这意味着COM服务器没有注册。

我试图从3天前开始寻找解决方案,但我开始绝望了。欢迎任何帮助。

附注:对不起,我的英语不是我的母语

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-03 07:52:32

不确定Qt是否在幕后处理此问题,但您是否确定正在通过调用CoInitializeEx为COM初始化线程

我在工作中使用了一些COM和Qt,这有时会被忽略。

CoInitializeEx Function

下面是使用该函数的一个示例。

代码语言:javascript
复制
MyClass::MyClass()
{
    // Make this call before attempting to access COM.
    if( SUCCEEDED( CoInitializeEx( 0, COINIT_APARTMENTTHREADED ) ) )
    {
         // This single thread has been initialized for COM usage.
         // Alternatively you can use COINIT_MULTITHREADED instead
         // of COINIT_APARTMENTTHREADED if you require threaded
         // support.
    }
    else
    {
         // Failed, still must call uninitialize.
         CoUninitialize();
    }
}

MyClass::~MyClass()
{
    CoUninitialize();
}
票数 0
EN

Stack Overflow用户

发布于 2012-07-11 19:23:26

似乎让COM接口正常工作的唯一方法是使用Qt VS插件从VS编译。它对我很有效,我用的是Visual Studio 2008。请看这篇文章:Building ActiveQt (COM) applications with MinGW

但不管怎样,这并不能解决这个问题,因为需要有Microsoft VS许可证才能使用COM接口编译Qt软件。(VS加载项与VS express版本不兼容)

感谢大家的帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8517371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档