avatar
Articles
286
Tags
104
Categories
25

Theqiqi_blog
Search

Theqiqi_blog

2.第一个qt6窗口程序
Created2025-03-24|QT6_Gui|C++•Qt6•GUI•Cmake
qt1.窗口1.src/main.cpp12345678910111213#include <QApplication>#include <QDebug>#include <QWidget>int main(int argc, char *argv[]){ QApplication a(argc, argv); QWidget *hw = new QWidget(); //main GUI window hw->show(); //hw is the real window return a.exec();} 2.动态链接CMakelists.txt1234567891011121314151617181920212223242526272829303132cmake_minimum_required(VERSION 3.24.0)# 设置项目名称和版本project(MyQtApp VERSION 0.1 LANGUAGES CXX)set(CMAKE_INCLUDE ...
1.第一个qt6控制台程序
Created2025-03-24|QT6_Gui|C++•Qt6•GUI•Cmake
qt1.控制台程序1.src/main.cpp12345678910#include <QCoreApplication>int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); qDebug("hello,world\n"); qDebug() << "hi:" << "see you"; return a.exec();} 2.Linux下编译CMakeLists.txt1234567891011121314151617cmake_minimum_required(VERSION 3.14)# 设置项目名称和版本project(MyQtApp VERSION 0.1 LANGUAGES CXX)# 查找 Qt 6 包find_package(Qt6 REQUIRED COMPONENTS Core)# 设置 C++ 标准set(CMAKE_CXX_STANDA ...
4.QT使用https协议通信
Created2025-03-23|Cpp_Socket|C++•IPV4•http•Qt6•Cmake
1. Qt6使用https协议在客户端发送一条文字消息到服务器端。之前的 HTTP 示例改成 HTTPS,这样客户端通过 TLS 加密发送一条文字消息到服务器端。 这里有几个关键点需要注意: 🔑 关键变化 Qt 客户端 使用 QNetworkAccessManager + QNetworkRequest,但 URL 必须是 https:// 需要配置 QSslConfiguration(证书验证、加密套件等) 如果是自签名证书,需要在客户端信任它(开发阶段可以临时忽略验证) 服务器端 Qt 自带的 QTcpServer 不直接支持 HTTPS,需要用 QSslSocket 或 QTcpServer+QSslSocket 组合 必须加载服务器的私钥和证书(PEM 格式) 证书可以用 openssl 自签名生成 1️⃣ 生成自签名证书(开发测试用) 在终端执行: 1openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout server.key -out server.crt 然后合并成一个 .pem ...
3.QT使用http协议通信
Created2025-03-23|Cpp_Socket|C++•IPV4•http•Qt6•Cmake
1. Qt6使用http协议在客户端发送一条文字消息到服务器端。1.httpserver main.cpp 12345678910#include <QCoreApplication>#include "httpserver.h"int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); HttpServer server; return a.exec();} httpserver.h 1234567891011121314151617181920212223#ifndef HTTPSERVER_H#define HTTPSERVER_H#include <QObject>#include <QTcpServer>#include <QTcpSocket>class HttpServer : public QObject{ Q_OBJECTpublic: explicit HttpSer ...
2.QT使用tcp通信
Created2025-03-23|Cpp_Socket|cmake•c++•Qt6•ipv4•ipv6
1. Qt6使用tcp协议建立连接后在客户端发送一条文字消息到服务器端而后断开连接。编写两个使用qt6框架开发的程序一个是服务端一个是客户端,Qt6使用tcp协议建立连接后在客户端发送一条文字消息到服务器端而后断开连接,无ui界面,按照qt风格分开声明与实现,参考qwiget模板但是没有ui。 实现一个最简单的 一次性连接: 客户端:启动后连接服务器 → 发送一条文字消息 → 断开连接 服务器:监听端口 → 接收连接 → 读取消息 → 打印到控制台 无 UI,但结构参考 Qt Widget 模板(main.cpp + 一个 QObject 派生类,分头文件和实现文件) Qt6 + CMake,客户端和服务端是两个独立项目 1.tcpserver main.cpp 12345678910#include <QCoreApplication>#include "tcpserver.h"int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); TcpServe ...
1.QT使用udp通信
Created2025-03-23|Cpp_Socket|cmake•c++•Qt6•ipv4•ipv6
1. Qt6使用udp协议在客户端发送一条文字消息到服务器端。编写两个使用qt6框架开发的程序一个是服务端一个是客户端,单独使用cmake管理项目,Qt6使用udp协议在客户端发送一条文字消息到服务器端,无ui界面,按照qt风格分开声明与实现。 1.udpserver main.cpp 12345678910#include <QCoreApplication>#include "udpserver.h"int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); UdpServer server; return a.exec();} udpserver.h 12345678910111213141516171819202122#ifndef UDPSERVER_H#define UDPSERVER_H#include <QObject>#include <QUdpSocket>#include <QHostAddr ...
windows驱动开发39.利用结构体实现一个控制码多个功能的驱动通信方式
Created2025-03-13|Drvier|C•Drvier•WindowsDriver
利用结构体实现一个控制码多个功能的驱动通信方式✅ SharedProtocol.h(通信协议头)12345678910111213141516171819#pragma once#define MAX_PAYLOAD 512// IOCTL 定义#define IOCTL_EXCHANGE_MESSAGE CTL_CODE(FILE_DEVICE_UNKNOWN, 0x800, METHOD_BUFFERED, FILE_ANY_ACCESS)// 消息类型typedef enum _MESSAGE_TYPE { MSG_TYPE_SEND = 1, MSG_TYPE_QUERY = 2} MESSAGE_TYPE;// 用户层传入结构体typedef struct _USER_REQUEST { MESSAGE_TYPE MsgType; ULONG PayloadSize; CHAR Payload[MAX_PAYLOAD];} USER_REQUEST, *PUSER_REQUEST; ✅ Common.h ...
windows驱动开发40.用户层与驱动层的其他通信方式
Created2025-03-13|Drvier|C•Drvier•WindowsDriver
❓除了 IOCTL,还有没有其他通信机制?答案是:有,很多!但都有其应用场景,适合特定类型通信需求。 🧭 用户层与驱动通信的常见方式(按应用场景分类) 通信方式 说明 特点 是否支持异步 多功能支持 IOCTL(DeviceIoControl) 控制命令接口 通用、官方推荐 ✅ ✅ 多功能(用控制码区分) ReadFile / WriteFile 流式通信 数据读写,适合输入/输出管道 ✅ ⚠️ 一般只一个方向,多功能难 IOCP + Read/Write 高性能异步 I/O 适合数据流、大量异步并发 ✅ ⚠️ 通常不细分功能,用 tag/结构区分 共享内存 + 信号量 / 事件 零拷贝高性能通信 非常快,适合频繁小数据交换 ❌(需手动同步) ✅(共享内存结构定义) 命名管道(Named Pipe) 简单的双向通信 类似 socket,适合服务型驱动 ✅ ✅(靠结构/标识分功能) Section 映射内存(ZwMapViewOfSection) 高速共享数据区 复杂内核同步,适合高级场 ...
windows驱动开发38.Linux驱动编写入口_模板_编译_加载
Created2025-03-13|Drvier|C•Drvier•LinuxDriver
写一个linux驱动程序模板以下是一个Linux 内核模块(驱动)模板,适用于内核模块开发入门者,可用于字符设备、平台设备、网络驱动等的基础架构。 这个模板适用于 大多数类型的内核模块,并包括模块加载、卸载、打印日志等基础结构。 ✅ Linux 驱动程序模板(C语言)1234567891011121314151617181920212223242526272829303132// my_driver.c#include <linux/module.h>#include <linux/init.h>#include <linux/kernel.h>#define DRIVER_AUTHOR "YourName"#define DRIVER_DESC "A simple Linux driver template"// 模块加载函数static int __init my_driver_init(void){ printk(KERN_INFO "my_driver: 模块加载\n&q ...
windows驱动开发37.怎么在Windows11中加载未签名的驱动
Created2025-03-13|Drvier|C•Drvier•WindowsDriver
方法一:使用测试签名模式在windows中设置测试签名模式: 按下 Windows + X 键打开快捷菜单 选择”Windows PowerShell (管理员)” 在 PowerShell 中输入以下命令并回车: 1bcdedit /set testsigning on 重启电脑以使更改生效 方法二:禁用windows驱动签名 在启动windows操作系统时禁用驱动签名。 命令行关闭签名验证,重启后生效。 开启与关闭命令 1234#禁用您设备上的驱动程序签名bcdedit.exe / set nointegritychecks on#启用此功能,请运行以下命令bcdedit.exe / set nointegritychecks off 方法四:使用驱动漏洞关闭签名验证 下载kdu软件。 在kdu同目录下运行命令关闭签名验证(无需重启,立即生效)。 1kdu -dse 0 成功加载驱动后可选择重新打开签名验证。 1kdu -dse 6 方法五:在系统启动阶段加载内核工具可开关驱动签名验证EfiGuard 方法六:绕过驱动强制签名加载未签名驱动 编写驱动程 ...
1…567…29
avatar
Theqiqi
Articles
286
Tags
104
Categories
25
Follow Me
Announcement
This is my Blog
Recent Post
101.使用Grop网站提供的api2026-01-03
9.压测2025-03-27
8.Linux Socket并发模型http服务器2025-03-27
7.web服务器中收发REST接口2025-03-27
6使用c语言与linux系统写一个web服务器,解析并响应get与post请求2025-03-27
Categories
  • C with Socks16
  • C_Sound10
  • C_Windows_Graphi9
  • Cpp5
  • Cpp_Socket4
  • C语言在Windows中实现抓包4
  • C语言的万种用法9
  • Debian1
Tags
cmake Cmake ipv4 x86汇编程序 Hacking LinuxDriver Python C++ android c_windows_driver Drvier epoll Piano OpenGl Disk linux MySql web Ethernet WindowsDrive jsp gtest html poll LinSock first pragram AI UART javascript System C http opencv Sound system PVE Hook Graphi Qt5.8 c语言的万种用法
Archives
  • January 20261
  • March 202595
  • February 202523
  • September 20242
  • August 202471
  • June 20242
  • March 202443
  • February 20248
Info
Article :
286
UV :
PV :
Last Update :
©2020 - 2026 By Theqiqi
Framework Hexo|Theme Butterfly
Search
Loading the Database