Qt-解决异常报错“QAxBase::setControl: requested control XXX could not be instantiated”

这篇具有很好参考价值的文章主要介绍了Qt-解决异常报错“QAxBase::setControl: requested control XXX could not be instantiated”。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

Qt-解决异常报错“QAxBase::setControl: requested control XXX could not be instantiated”,Qt,qt

问题说明

       使用Qt开发的过程中,QAxObject是经常用到的一个类,用于操作Windows中各种COM接口,进而实现各类功能。

       WbemScripting.SWbemLocator是我想要通过QAxObject访问的对象,使用下方代码,一般来说会完成实例化并继续执行后续操作。

QAxObject *objIWbemLocator = new QAxObject("WbemScripting.SWbemLocator");

       然而很多人会触发下方错误提示,翻译过来就是无法实例化请求的对象。

Qt-解决异常报错“QAxBase::setControl: requested control XXX could not be instantiated”,Qt,qt

       经过我多方调研,查清了问题缘由,是因为COM未初始化导致。QAxObject既然用于操作COM接口,那COM的初始化也显得至关重要。

       解决问题的办法如下所示。

解决方案

       QleInitialize函数是一个Windows API函数。它的作用是在当前单元(apartment)初始化组件对象模型(COM)库,将当前的并发模式标识为STA(single-thread apartment——单线程单元),并启用一些特别用于OLE技术的额外功能。除了CoGetMalloc和内存分配函数,应用程序必须在调用COM库函数之前初始化COM库。

       我们在实例化前调用QleInitialize函数来初始化COM,如下所示。并在操作后调用OleUninitialize函数取消COM初始化。至此,该问题解决。

OleInitialize(0);
QAxObject *objIWbemLocator = new QAxObject("WbemScripting.SWbemLocator");
// 系列操作
OleUninitialize();

       近期在回顾用Qt开发的许多项目,对比较好或者我觉得会有人需要的内容,会同步更新在CSDN,希望能帮助到其他人。近几年受疫情影响,大家的生活和工作都十分不易,希望未来一年比一年好,我们一同努力!

       如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!文章来源地址https://www.toymoban.com/news/detail-517018.html

到了这里,关于Qt-解决异常报错“QAxBase::setControl: requested control XXX could not be instantiated”的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【异常】客户端发起HTTPS请求报错,服务端返回400 Bad Request ,并且提示No required SSL certificate was sent

    HTTP响应码400表示客户端发送了一个无效的请求。这可能是由于请求中缺少必需的参数或格式不正确等原因导致的。服务器无法处理此请求并返回400响应码。如果您正在编写Web应用程序,建议在处理请求时检查请求的有效性,并在必要时返回400响应码以指示客户端请求无效。

    2024年02月11日
    浏览(37)
  • 已解决org.springframework.web.context.request.async.AsyncRequestTimeoutException异步请求超时异常的正确解决方法,亲测有效!!!

    已解决org.springframework.web.context.request.async.AsyncRequestTimeoutException异步请求超时异常的正确解决方法,亲测有效!!! 目录 问题分析 出现问题的场景 报错原因 解决思路 解决方法 总结 在基于Spring Framework构建的现代Web应用程序中,异步处理是提高性能和用户体验的一种常用技

    2024年03月27日
    浏览(38)
  • [nodejs]关于http.request遇到报错BadRequestError: request aborted怎么解决

    今天写demo时,调用http.request方法时遇到服务端报错BadRequestError: request aborted,点击进入报错的位置:  然后根据我写请求里有content-length:  发现是content-length乜有设置成和发送的消息内容的长度一致,把长度改成消息内容的长度就行了,或者注释掉也可以。

    2024年02月12日
    浏览(52)
  • 成功解决requests 报错raise SSLError(e, request=request)_requests.exceptions.SSLError_ HTTPSConnectionPool

    问题描述 在使用requests调用https接口时,会遇到ssl证书报错 解决思路 因为有的网站需要验证书,比如:12306, 所以只需要加加上参数:verify=证书路径,或verify=Flase 解决方法 步骤1: 在requests请求时,加上参数Verify 但是,加上参数后,会有警告,提示安全问题 如何忽略警告呢

    2024年02月12日
    浏览(39)
  • SpringBoot之Post请求@RequestBody为空抛出Required request body is missing异常的解决方案

    org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing 出现异常的原因:body为空,但是@RequestBody注解默认请求体不能为空。 这个纯属粗心大意的问题~ 如果是刚刚开发的项目,那么建议这样写。如果已经存在的项目,肯定不能这样写,后面会介绍另外一

    2024年02月13日
    浏览(37)
  • QT - QML 遇到 module “QtQuick.Controls“ version 2.5 is not installed 的相关问题的解决策略

    问题由来, 在跟着视频敲代码时,需要用到 DelayButton 这个控件,因此需要导入相关的库模块 (跟着视频敲的是import QtQuick.Controls 2.5 ),但可能由于版本较低的原因没有安装这个库模块。根据输入提示,有个 import QtQuick.Controls 2.1,但是,这个库模块中并不支持 DelayButton 这个

    2024年02月12日
    浏览(33)
  • Required request body is missing 报错解决

    用 PostMan 测试 POST 类型的接口时,出现错误: 直白的翻译就是该传的参数没能传递到后端。我的传参是表单格式: 后端接口的参数接收使用了注解 @RequestBody ,猜想应该是参数格式有问题,把它改成 JSON 格式传递,再次运行就 OK 了。

    2024年02月12日
    浏览(36)
  • ModuleNotFoundError: No module named ‘requests‘报错解决方法

    问题描述:已经在cmd下使用pip安装好requests模块后,可以使用import requests,但在Pycharm IDE下无法导入,出现如下错误:ModuleNotFoundError: No module named \\\'requests‘ 后来发现,原来我的python是装在E盘的,结果用install requests命令安装在了C盘,未切换E盘。又重新在E盘进行了安装 安装步

    2024年02月12日
    浏览(30)
  • 【python】如何安装requests库,以及如何引用(含报错如何解决)

    非常非常重要,后期操作大多都需要requests库,那么这篇文章就来分享下如何安装requests库,以及在python中如何引用 首先,看一下如何安装 1、定位到python的 scripts文件路径 2、使用命令安装pip install requests 安装requests库 3、在编辑器(我的是pycharm)中输入import requests如果没有报

    2024年02月20日
    浏览(41)
  • Controller层自定义注解拦截request请求校验

    一、背景 笔者工作中遇到一个需求,需要开发一个注解,放在controller层的类或者方法上,用以校验请求参数中(不管是url还是body体内,都要检查,有token参数,且符合校验规则就放行)是否传了一个token的参数,并且token符合一定的生成规则,符合就不予拦截,放行请求,否则

    2024年01月17日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包