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 模块实…

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

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

Java中的运算符

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

李廉洋: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 多通道非…

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

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

【力扣 Hot100 | 第六天】4.21(字母异位词分组)

9.字母异位词分组 9.1题目 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例一: 输入: strs ["eat", "tea", "tan&quo…

电商技术揭秘三十二:智能风控的案例研究与未来趋势

相关系列文章 电商技术揭秘相关系列文章合集(1) 电商技术揭秘相关系列文章合集(2) 电商技术揭秘二十八:安全与合规性保障 电商技术揭秘二十九:电商法律合规浅析 电商技术揭秘三十:知识产权保…

stable diffusion webui 使用 SDXL模型

可以去c站上下载别人处理好的模型,从liblib里下载也可以 DreamShaper XL 将下载好的模型复制到/models/Stable-diffusion目录下,webui的界面里选择加载模型 测试了一下,需要注意的是这三个选项 采样器必须设置为DPM SDE Karras &#xf…

spring高级篇(三)

1、Spring选择代理 1.1、Aspect和Advisor 在Spring框架中,"Aspect" 和 "Advisor" 是两个关键的概念,它们都与AOP(面向切面编程)密切相关: 如果要在Spring中定义一个Aop类,通常会&…

STM32H7的LCD控制学习和应用

STM32H7的LCD控制 LTDC基础硬件框图LTDC时钟源选择LTDC的时序配置LTDC背景层、图层1、图层2和Alpha混合LTDC的水平消隐和垂直消隐LCD的DE同步模式和HV同步模式的区别区分FPS帧率和刷新率避免LTDC刷新撕裂感的解决方法 驱动示例分配栈的大小MPU和Cache配置初始化SDRAM初始化LCD应…

使用IOPaint实现图片擦除路人

IOPaint 是一个免费的开源的 inpainting/outpainting 工具,由最先进的 AI 模型提供支持。 IOPaint 中使用各种模型来修改图像: 擦除:删除任何不需要的物体、缺陷、水印、人物。修复:对图像的特定部分进行修改、添加新对象或替换…

vcontact2:病毒聚类(失败)

Bitbucket 安装 mamba create --name vContact2 biopython1.78 mamba install -c bioconda vcontact20.11.3vim ~/envs/vContact2/lib/python3.9/site-packages/vcontact2/exports/summaries.py 把 np.warnings.filterwarnings(ignore) 改成 import warnings warnings.filte…