随笔分类 -  C++

WinDbg基本使用
摘要:简介 WinDbg是Windows下进行程序调试的工具 安装及基本使用 下载并安装WinDbg 如下图所示,需要配置符号文件路径,源代码路径,可执行文件路径,然后点击打开dmp文件。配置的路径示例如下: 符号文件路径: SRV*c:\localsymbols*http://msdl.microsof 阅读全文
posted @ 2025-07-08 16:34 scrutiny-span 阅读(15) 评论(0) 推荐(0)
上下位机Modbus通信
摘要:上下位机通信 上下位机使用使用Modbus协议进行通信。在Qt开发中,可以采用第三方库libmodbus完成 目录上下位机通信modbus协议介绍简介Modbus中的存储区地址模型Modbus协议分类功能码及异常码Modbus通信协议Modbus RTU通信协议Modbus ASCIIModbus 阅读全文
posted @ 2025-04-12 14:24 scrutiny-span 阅读(140) 评论(0) 推荐(0)
Qt之串口通信
摘要:串口(串行接口)简介 串口(Serial Port):串行通讯接口,采用串行通讯协议在信号线上将数据一个比特一个比特地逐位进行传输 串行接口按照电气标准及协议分为: RS-232:标准串口,最常用通讯串口,其传输距离最大为约15米,最高速率为20kb/s RS-422:最大传输距离为1219米,最大 阅读全文
posted @ 2025-03-23 15:05 scrutiny-span 阅读(76) 评论(0) 推荐(0)
Qt多线程
摘要:目录多线程的创建重写QThread类的run方法使用信号与槽机制使用线程池多线程同步 多线程的创建 重写QThread类的run方法 通过重写QThread类的run方法实现多线程的创建,实现的run方法将作为线程执行体。 示例如下:将复杂的计算任务交给子线程处理,主线程负责获取计算结果并展示在UI 阅读全文
posted @ 2025-03-15 13:01 scrutiny-span 阅读(28) 评论(0) 推荐(0)
Qt6.7.3连接MySQL8.0
摘要:目录问题描述MySQL动态库配置MySQL驱动编译测试程序 环境:Qt6.7.3,编译器使用msvc2019_64,MySQL8.0 问题描述 Qt连接MySQL报错如下: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available 阅读全文
posted @ 2025-02-03 10:53 scrutiny-span 阅读(330) 评论(0) 推荐(0)
Qt打包应用程序
摘要:目录方式1 方式1 环境:Qt5.15.2,MSVC2019 64位 将Release构建模式下编译生成的exe文件放入一个空目录下 打开Qt 5.15.2(MSVC 2019 64-bit)工具,比如说我的位于C:\Users\wzh\AppData\Roaming\Microsoft\Windo 阅读全文
posted @ 2025-01-23 09:30 scrutiny-span 阅读(30) 评论(0) 推荐(0)
Qt实现Modbus简单通信
摘要:目录测试工具示例 环境:Qt5.15.2 测试工具 Virtual Serial Port Driver:用于创建成对的虚拟串口,一个用于发送,一个用于接收。 Modbus Slave:用于模拟从机 示例 前提:打开Virtual Serial Port Driver,创建一对虚拟串口。Qt中实现M 阅读全文
posted @ 2025-01-13 20:12 scrutiny-span 阅读(358) 评论(0) 推荐(0)
CMAKE搭建CUDA GPU开发环境
摘要:目录CUDA Toolkit安装基于CMAKE搭建第一个CUDA程序 环境:Windows11 CUDA Toolkit安装 这个工具提供了一个用于开发高性能,GPU加速的应用的开发环境。 在cmd窗口中输入nvidia-smi,查看显卡支持的最高CUDA版本以及驱动版本 Wed Dec 25 00 阅读全文
posted @ 2024-12-26 20:44 scrutiny-span 阅读(956) 评论(0) 推荐(0)
c++客户端程序连接MySQL
摘要:环境:MySQL8.0.35 在MySQL8中,C API (libmysqlclient) is included in MySQL 8.0。因此不需要安装MySQL Connector 找到libmysqlclient相关的库文件,头文件放在项目目录下 编写项目配置文件CMakeLists.tx 阅读全文
posted @ 2024-12-17 20:53 scrutiny-span 阅读(91) 评论(0) 推荐(0)
Qt Designer设计师常用控件与布局管理
摘要:目录Qt常用控件ButonsItem ViewsItem WidgetsContainersInput WidgetsDisplay Widgets布局管理内外边距水平布局管理器QHBoxLayout垂直布局管理器QVBoxLayout栅格布局管理器QGridLayout表单布局管理器QFormLa 阅读全文
posted @ 2024-10-30 12:38 scrutiny-span 阅读(658) 评论(0) 推荐(0)
windows11搭建Qt开发环境
摘要:目录1.Qt Creator的安装2.Visual Studio2019 + Qt + Qt Vs Tools3.Visual Studio2019 + Qt + CMAKE(推荐)4.Qt项目转为VS项目1.方式12.方式2 选择以下两种方式任意一种进行开发环境的搭建,推荐第二种 1.Qt Cre 阅读全文
posted @ 2024-10-25 11:03 scrutiny-span 阅读(447) 评论(0) 推荐(0)
Linux之进程
摘要:目录进程基础1.进程概述2.进程的创建以及进程id的获取3.父子进程4.exec族函数5.进程控制守护进程1.进程组2.会话3.守护进程进程CPU使用率过高问题的排查进程通信 进程基础 1.进程概述 进程在运行过程中,程序内部所有的指令都是通过CPU处理完成的,CPU只进行数据运算并不具备数据存储的 阅读全文
posted @ 2024-05-12 19:03 scrutiny-span 阅读(52) 评论(0) 推荐(0)
零拷贝
摘要:目录简介实现零拷贝的方式1.sendfile2.splice3.mmap+write 简介 零拷贝技术主要是为了提高读写性能。 实现零拷贝的方式 1.sendfile Linux提供了一个系统调用sendfile,用于在内核中完成从一个文件描述符到另一个文件描述符数据的拷贝。其函数原型如下所示: # 阅读全文
posted @ 2024-05-11 23:56 scrutiny-span 阅读(80) 评论(0) 推荐(0)
FD_CLOEXEC、SOCK_CLOEXEC、O_CLOEXEC标志
摘要:目录FD_CLOEXEC标记FD_CLOEXEC标记的设置 FD_CLOEXEC标记 FD_CLOEXEC:这是个文件描述符标记,其值为1。 #define FD_CLOEXEC 1 这个标记的含义是:如果对文件描述符设置了FD_CLOEXEC标记,则在使用fork创建子进程后,父进程中打开的文件描 阅读全文
posted @ 2024-05-11 11:20 scrutiny-span 阅读(341) 评论(0) 推荐(1)
多线程编程总结
摘要:目录Linux系统多线程编程基础Windows多线程编程基础C++多线程编程基础实例1.子线程打开一个文件,将系统当前时间写入。主线程读取文件中的时间并显示在屏幕上2.实现多生产者多消费者模型 Linux系统多线程编程基础 Linux系统下多线程编程可以采用glibc库中的POSIX库,glibc是 阅读全文
posted @ 2024-05-10 22:57 scrutiny-span 阅读(38) 评论(0) 推荐(0)
Linux多线程基础
摘要:目录线程基础1.线程概述2.线程的创建3.线程的退出4.线程的回收5.线程分离6.其他线程函数线程同步1.线程同步的概念2.互斥锁3.读写锁4.条件变量5.信号量(信号灯)线程局部存储死锁 在Linux下使用多线程编程,主要是使用glibc库中的接口 线程基础 1.线程概述 线程是轻量级的进程(称作 阅读全文
posted @ 2024-05-10 02:19 scrutiny-span 阅读(117) 评论(0) 推荐(0)
Libevent源码剖析
摘要:目录Libevent简介编译与安装Libevent中的事件事件处理框架event_base及事件循环支持IO多路复用机制 版本:release-1.4.13-stable,环境:centos64位 Libevent简介 同libev,libuv一样,三者都是异步事件库。作为库的使用者只需要注册事件的 阅读全文
posted @ 2024-05-09 14:27 scrutiny-span 阅读(53) 评论(0) 推荐(0)
事件处理框架event_base及事件循环
摘要:目录事件处理框架event_base事件处理主循环 事件处理框架event_base 事件处理框架对应于Reactor模式中的Reactor管理器,提供了事件注册、注销等接口。 事件处理框架对应event_base结构体,这也是Libevent的核心。 struct event_base { // 阅读全文
posted @ 2024-05-09 14:25 scrutiny-span 阅读(135) 评论(0) 推荐(0)
Libevent中的事件
摘要:Libevent中的event结构体对应于Reactor模式中的事件处理器,其中提供了函数接口,供Reactor管理器在事件发生时调用。 目录1.event结构体2.信号事件3.定时器事件4.激活事件的统一处理 1.event结构体 事件的类型:主要分为IO读写、信号、超时事件 #define EV 阅读全文
posted @ 2024-05-09 12:26 scrutiny-span 阅读(85) 评论(0) 推荐(0)
IO多路复用机制的支持
摘要:event-internal.h中定义了eventop结构体,每一种IO多路复用机制都会实现eventop结构体中的五个方法。 struct eventop { const char* name; void* (*init)(struct event_base*); int (*add)(void* 阅读全文
posted @ 2024-05-09 01:38 scrutiny-span 阅读(37) 评论(0) 推荐(0)