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

news2024/10/5 6:31:16

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

问题说明

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

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

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

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

       经过我多方调研,查清了问题缘由,是因为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,希望能帮助到其他人。近几年受疫情影响,大家的生活和工作都十分不易,希望未来一年比一年好,我们一同努力!

       如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/699301.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是开源工作流系统?内容涉及哪些方面?

随着低代码开发市场的繁荣发展,它的灵活、简便、易操作、好维护等优势特点深得广大用户朋友的喜爱,是推动其走向流程化管理的重要推动力。那么,您了解开源工作流系统吗?知道它都有哪些主要内容吗?如果想了解这方面的内…

浅析金鸣识别所用的Canny边缘检测算法和Sobel算子

Canny边缘检测算法和Sobel算子都是金鸣识别常用的图像边缘检测算法,在识别图片表格过程中金鸣识别通常会根据不同的场景混合使用它们,以达到最佳的识别效果,它们是非常先进的算法,下面我们来看看它们的实现步骤与区别。 Canny边缘…

多智能体强化学习理论与算法总结

多智能体强化学习理论与算法总结 先搞明白on-policy和off-policy 【强化学习】一文读懂,on-policy和off-policy 我的理解:on-policy就是使用最新的策略来执行动作收集数据,off-policy的训练数据不是最新策略收集的。on-policy也是使用同个策…

苹果手机ios设备管理软件iMazing 2.17.6官方版下载及常见问题解决

苹果手机ios设备管理软件iMazing 2.17.6官方版下载(ios设备管理软件)是一款管理苹果设备的软件, Windows / macos 系统上的一款帮助用户管理 IOS 手机的应用程序,软件功能非常强大,界面简洁明晰、操作方便快捷,设计得非常人性化。…

electron+vue3+ts+vite

首先使用vite工具创建一个vue3ts的项目 npm create vite创建好vuets项目后启动项目 cd electron-vue3-ts-vitenpm installnpm run dev 访问http://127.0.0.1:5173/地址可以看到项目已经启动成功 安装Electron 接下来我们安装electron,使用以下命令 npm i -D el…

FlashAttention论文解析

FlashAttention让语言模型拥有更长的上下文 FlashAttention序:概述:简介:FlashAttention块稀疏 FlashAttention优点:标准注意力算法实现流程: FlashAttentionBlock-Sparse FlashAttention实验使用FlashAttention后更快…

【网络管理发展】网络杂谈(12)之网络管理未来发展趋势

涉及知识点 网络管理未来的发展方向,网络管理未来的发展趋势,个人闲谈网络管理未来发展,网络管理技术现状,应用服务供应商(ASP),网络的远程管理,人工智能与未来。 原创于&#xff1…

try catch 异常处理

C中使用异常时应注意的问题任何事情都是两面性的,异常有好处就有坏处。如果你是C程序员, 并且希望在你的代码中使用异常,那么下面的问题是你要注意的。1. 性能问题。这个一般不会成为瓶颈,但是如果你编写的是高性能或者实时性要求…

保偏产品系列丨5款保偏光纤产品简介

保偏光纤应用日益扩大,特别是在干涉型传感器等测量方面,利用保偏光纤的光无源器件起着非常重要的作用,种类也很多。 本文来介绍5款保偏光纤系列产品以及它们的性能,欢迎收藏转发哦! 01、保偏光纤跳线-TLPMPC 保偏光纤跳…

2015年全国硕士研究生入学统一考试管理类专业学位联考数学试题——纯题目版

2015 级考研管理类联考数学真题 一、问题求解(本大题共 15 小题,每小题 3 分,共 45 分)下列每题给出 5 个选项中,只有一个是符合要求的,请在答题卡上将所选择的字母涂黑。 1.若实数a,b, c 满足 a : b : c…

手机记事本中的内容转到新手机不见了,怎么办?

在更换新手机时,很多网友都会面临这样一个问题,这就是旧手机中的重要数据如何转移到新手机上。一般来说,如果是相同品牌的手机,我们可以借助手机云空间账号进行数据的同步;但如果使用的是不同品牌的手机,这…

如何恢复电脑回收站中的数据?应对已清空电脑回收站的措施

在我们日常使用电脑的过程中,误删文件是难以避免的。幸运的是,电脑回收站提供了一种简便的方式来找回被删除的文件。然而,有些文件可能不会进入回收站,或者回收站的数据被清空,导致丢失的文件无法通过常规方式恢复。在…

在rails项目里面把a链接中的com前半部分用sub替换

在Rails项目中,你可以使用sub方法来替换a链接中的"com"前半部分。下面是一个示例: # 假设a链接的原始URL为:https://example.com/some/pagelink "https://example.com/some/page" modified_link link.sub("com…

node.js宿舍管理系统-计算机毕设 附源码80331

node.js宿舍管理系统 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于角度存在偏差,人们经常能够获取不同类型的信息,这也是技术最为难以攻克的课题。针对宿舍管理系统等问题&#…

高防IP服务靠谱吗?能抵御什么攻击?

今天我们要揭开一个神秘而又酷炫的面纱——高防IP服务!是不是已经感到心跳加速了呢?那么,问题来了,高防IP服务靠谱吗?它能抵御什么攻击呢? 我们来给大家科普一下高防IP服务是什么。简单来说,高防…

JetBrains编程IDE将具备Ai助手功能,或将提高开发速度

近日JetBrains发布博客文章宣布,本周所有基于IntelliJ的IDE和.NET工具的EAP版本都将具备AI助手功能。而这些操作或许将提高开发效率,并且这些AI助手也是使用自家的**ERP**模型和OpenAI服务。 JetBrains表示,当下AI助手功能主要体现在IDE的两…

adb 查询app占用的cup和内存

一、先将cpu定频 先进入shell 模式 adb shell 查看当前CPU的工作模式 cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor 然后把CPU工作模式设置为performance模式 echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor 改完后查看模式…

Pytest接口自动化框架

目录 前言: 插件: test_case pytest.ini (pytest.ini 配置文件不支持注释) run_all.py report 插件: test_case pytest.ini (pytest.ini 配置文件不支持注释) run_all.py report 前言: pytest是一个基于Python的开源测试框…

ShaderGraph制作“红旗迎风飘扬”效果(Unity2019版)

零、准备“旗面”游戏物体 旗面是一个平面,右键创建的3D物体里是平面的,有Quad和Plan,模仿旗面“起伏”的原理是对平面的顶点,做不同程度的抬升:Quad从线框图中看,是一个长方形,只有四个顶点&am…

nginx unknown directive “stream“

目录 1、安装依赖 2、执行命令 nginx 运行报错:unknown directive "stream"的原因,主要是因为没有安装stream模块导致的,我们只需要编译安装一下stream模块即可解决这个问题。 1、安装依赖 提前安装编译所需要的依赖插件 # gcc…