QService 服务 指令引用的“0x00000000”内存。该内存不能为“read“

QtServiceBase类在Qt框架中是设计用来简化Windows服务或类Unix守护进程创建的。这个类提供了一组方法和属性,使得开发者能够专注于服务逻辑,而不必担心操作系统层面的细节。下面是一些QtServiceBase类中常用的属性和方法:

常用方法

  1. start(): 启动服务。这是服务逻辑的入口点,当服务管理器要求启动服务时,这个方法被调用。
  2. stop(): 停止服务。当服务需要停止时,这个方法会被调用,允许你执行必要的清理操作。
  3. pause(): 暂停服务。这个方法应该实现暂停服务的逻辑。
  4. resume(): 恢复服务。在服务被暂停后,调用这个方法以恢复服务的运行。
  5. execute(): 这是一个静态方法,它初始化服务并处理来自操作系统的命令。

常用属性

  1. serviceName: 服务的名称。这是一个字符串,标识了服务的名称,通常在安装或管理服务时使用。
  2. serviceDescription: 服务的描述。这提供了服务的更详细的描述,有助于理解服务的功能。
  3. serviceFlags: 服务的标志。这是一个枚举类型,可以设置服务的一些行为,比如是否自动启动。

其他方法和属性

  • logMessage(): 记录服务的日志信息。这个方法可以用来记录服务运行过程中的重要信息或错误。
  • serviceId(): 返回服务的唯一标识符。这通常用于内部处理和日志记录。

生命周期管理

  • run(): 这个方法通常包含了服务的主循环,是服务活动的核心。

QtServiceBase的设计旨在通过提供这些基础和框架方法,简化服务的创建和管理过程。开发者只需继承QtServiceBase类,并重写如start()stop()等方法,即可根据自己的业务逻辑实现一个服务。通过这种方式,Qt帮助开发者抽象和处理了许多底层细节,使得开发者可以更专注于服务的核心功能。

示例

如下图在start入口函数中,新建一个定时器和udp通信,每隔100ms(频率高是为了更好定位问题)将消息发出,在xp和win7测试时功能毫无问题,但重启电脑时,报下图2内存错误

 

在各种排查代码后发现跟代码本身没有关系,于是查头文件,发现跟serviceFlags标志有关系,该属性是用来定义服务行为的一些标志。这些标志帮助Qt框架理解服务的运行方式,以及如何管理服务。这个属性是一个位掩码,可以设置一个或多个标志,从而提供灵活的配置选项。可以通过按位或操作(|运算符)组合多个标志来同时使用它们。

以下是一些可能包含在QtServiceBase中的serviceFlags的常见标志,具体可用的标志可能取决于你使用的Qt版本以及具体实现:

  1. Default: 这是默认的标志,表示服务将按照标准方式运行,没有特殊的行为修改。

  2. CanBeSuspended: 指示服务可以被挂起(暂停)。如果服务支持暂停和恢复功能,可以设置此标志。

  3. NeedsStopOnShutdown: 指示当系统关闭时,服务需要被停止。这通常用于确保服务在系统关闭前正确地完成清理和保存工作。

在没有自定义属性时,默认是default,在电脑重启过程中如果没有及时stop关闭服务,恰好资源还在使用就可能造成内存错误, 在构造函数中设置属性后问题解决:

setServiceFlags(QtServiceBase::NeedsStopOnShutdown);

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

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

相关文章

【Linux】Linux权限管理详解

🌱博客主页:青竹雾色间 🌱系列专栏:Linux 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 目录 1. Linux权限概念2. 文件访问者分类a) 文件和目录的访问者:b) 文件类型和访问权限 3. 文件权限值的表…

安装VCenter 7 对硬件资源的需求

安装VMware vCenter Server 7.x 对硬件资源的需求主要包括以下方面: 服务器硬件: 处理器:64位 x86架构,推荐采用多核CPU以支持高并发管理和运行多个虚拟机。具体数量取决于vCenter Server将管理的虚拟机规模及复杂度。内存&#x…

第四百七十七回

文章目录 1. 知识回顾2. 使用方法2.1 源码分析2.2 常用属性 3. 示例代码4. 内容总结 我们在上一章回中介绍了"Get包简介"相关的内容,本章回中将介绍GetMaterialApp组件.闲话休提,让我们一起Talk Flutter吧。 1. 知识回顾 我们在上一章回中已经…

K-近邻算法的 sklearn 实现

实验目的与要求 掌握基于 K-近邻分类算法的编程方法通过编程理解 K-近邻分类算法和该算法的基本步骤 实验器材 硬件:PC 机(参与实验的学生每人一台)软件环境:Python3.7 Pycharm 实验内容 使用 sklearn 库中的 neighbors 模块实…

idrac管理界面报错:RAC0508: 发生意外错误。

在idrac服务器-服务模块,看到如下报错信息: RAC0508: 发生意外错误。 等待几分钟然后刷新页面。 如果问题仍然存在,请联系服务提供商。 经查询,还是不知道是啥问题。 经查询,发现可能是数据库方面的报错,不…

xgp怎么取消续费 微软商店xgp会员取消自动续费详细教程

xgp怎么取消续费 微软商店xgp会员取消自动续费详细教程 XGP这个游戏平台小伙伴们并不陌生吧,它是微软Xbox游戏部门推出的游戏租赁制会员服务,主要用于主机和PC两个平台。这个平台的会员就可以免费享受多款大制作游戏,而且每个月还会自动更新…

Java中的运算符

运算符是用于数学函数、一些特殊的赋值语句和逻辑比较方面的特殊符号。 赋值运算符(“”) 赋值运算符是一个二元运算符(即对两个操作数进行处理),功能是将右侧的操作数赋值给左侧的操作数。 int a 100; 该表达式就…

KeyguardBouncer的显示流程

开机会调用其show方法吗? 不会 锁屏界面滑动 java.lang.NullPointerException: Attempt to invoke virtual method int java.lang.String.length() on a null object referenceat com.android.systemui.statusbar.phone.KeyguardBouncer.show(KeyguardBouncer.java…

李廉洋:4.24-4.25现货黄金,WTI原油区间震荡,走势分析。

黄金消息面分析:金银近日回调。随着伊朗方面淡化以色列最新反击,中东地区局势没有进一步发酵下,风险溢价下降金银出现较大幅度调整。由于近期高于预期的通胀数据,降息预期持续降温。昨日疲软的美国PMI以及以色列在加沙攻击的加剧支…

宽字符的来历:从ASCII到Unicode,C语言中的宽字符处理

目录 一、ASCII编码:字符世界的开篇 二、Unicode与宽字符的诞生 宽字符类型与宽字符串 三、C语言中的宽字符处理函数 四、宽字符与多字节字符 结语 在计算机科学的发展历程中,字符编码经历了从简单到复杂、从单一语言到全球多语种支持的演变过程。…

【大模型应用极简开发入门(2)】GPT模型简史:从GPT-1到GPT-4:从小数据量的微调到大数据量的强化学习不断优化模型

文章目录 一. GPT-1:无监督与微调1. 在GPT-1之前的监督学习的问题2. GPT-1中新的学习过程-无监督的预训练3. 复杂任务下的微调4. GPT-1为更强大的模型铺平了道路 二. GPT-2:context learning1. 核心思想:context learning2. GPT-2的数据集 三…

Simulink从0搭建模型03-Enabled Subsystem 使能子系统

参考博客 b站视频 【Simulink 0基础入门教程 P4 使能子系统 Enabled Subsystem 的使用介绍】 个人听了这个博主的视频风格觉得很适合我入门学习,讲得很清楚。 另外,视频里面教得很详细了,我也不会再详细写怎么打开创建等步骤,跟着…

2024 证券从业资格证考试备考资料分享

2024 证券从业资格证考试备考资料分享 2024 年 06月1、2日 证券从业资格考试全国统一考试(统考),预计将于5月初(考前一个月)左右开启报名 有没有小伙伴在准备备考的,不知道大家都准备怎么学习呢&#xff…

233 基于matlab的多通道非负矩阵分解(MNMF)算法

基于matlab的多通道非负矩阵分解(MNMF)算法。其能够寻找到一个非负矩阵W和一个非负矩阵H,满足条件VW*H,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积。使用EM准则对混合信号进行分解。程序已调通,可直接运行。 233 多通道非…

SQL基础学习

一. SQL基础 1. SQL简介 SQL 是用于访问和处理数据库的标准的计算机语言。 1.1 什么是 SQL? SQL 指结构化查询语言SQL 使我们有能力访问数据库SQL 是一种 ANSI 的标准计算机语言 **编者注:**ANSI,美国国家标准化组织 1.2 SQL 能做什么&…

SpringBoot项目 nohup启动运行日志过大问题

如下SpringBoot启动命令 nohup java -Xmx2048m -Xms2048m -jar springboot-demo.jar >>./log.los 2>&1 &使用这条命令启动会导致日志文件和jar包同级,并且随着日积月累,越来越大。最终撑爆目录。 临时解决办法 如果日志已经撑爆了你…

面试被刷,原因居然是不会Git

大家好,我是知微! 假设你是一个刚入行的菜狗程序员,正在开发一个软件。 现在老板需要你加一些功能,此时的你有一些担忧,如果对代码进行大刀阔斧的改动,最终却失败了。之前能正常运行的代码也被改得乱七八糟…

C语言-结构体基本概念2.0

结构体成员引用 结构体是一种集合,内部包含了多个独立的成员,每个成员都可以被单独引用。通过成员引用符 . 可以简单地访问结构体的各个成员。 示例 n.a 200; n.b y; n.c 2.22; printf("%d, %c, %lf\n", n.a, n.b, n.c); 结构体指针与数组…

NOIP2018 普及组 T4 对称二叉树

文章目录 题目传送门算法解析总代码提交记录尾声 题目传送门 洛谷 P5018 [NOIP2018 普及组] 对称二叉树 算法解析 本题 DFS 剪枝可过!!! 输入左儿子右儿子时如果遇到 − 1 -1 −1 就把它设为 0 0 0,这样好判断。 输入函数…

布隆过滤器简介

布隆过滤器(Bloom Filter)是一种空间效率高、查询效率快的数据结构,用于快速判断一个元素是否可能存在于一个集合中。它通过使用多个哈希函数和位数组来实现。 布隆过滤器原理: 位数组(Bit Array)&#xf…