- 博客(167)
- 收藏
- 关注

原创 C/C++、网络协议、网络安全类文章汇总
本文章主要对本博客的所有文章进行了汇总,方便查找。内容涉及C/C++编程,CMake、Makefile、Shell脚本,GUI编程框架MFC和QT,Git版本控制工具,网络协议基础知识,网络安全领域相关知识,Windows、Linux和Mac平台软件打包流程,一些实用的C/C++开源框架。
2025-01-19 10:06:35
1450
原创 C/C++回调函数实现与std::function和std::bind介绍
回调函数是一种编程模式,指的是将一个函数作为参数传递给另一个函数,并在某个特定事件发生时或满足某些条件时由该函数调用。这种机制允许你定义在特定事件发生时应执行的代码,从而实现更灵活和模块化的程序设计。
2025-03-29 10:35:37
1130
原创 右值引用、移动语义std::move和完美转发std::forward
左值是指那些具有持久存储位置的表达式。右值是指那些没有持久存储位置的临时表达式,通常表示的是临时值或即将被销毁的对象。
2025-03-27 09:00:00
540
原创 MySQL数据库之视图、存储过程和触发器
视图是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。
2025-03-22 09:00:00
809
原创 MySQL数据库之多表查询
项目开发中,在进行数据库表结构涉及时,会根据业务需求及业务模块之间的关系,分析并涉及表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种。
2025-03-16 09:00:00
835
原创 MySQL数据库索引
索引是帮助MySQL 高效获取数据的数据结构。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引向(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。
2025-03-15 09:00:00
1844
原创 使用WireShark解密https流量
https协议是在http协议的基础上,使用TLS协议对http数据进行了加密,使得网络通信更加安全。
2025-03-13 09:36:26
1969
原创 交叉编译介绍以及openssl如何交叉编译
交叉编译是指在一种计算机平台(如x86架构的PC)上生成另一种平台(如ARM架构的嵌入式设备)可执行代码的过程。其核心价值在于提升开发效率,允许开发者使用高性能主机为资源受限的目标设备编译程序。
2025-03-08 09:00:00
1508
1
原创 MySQL数据库事务与事务四大特性
事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。
2025-03-02 09:00:00
769
原创 inno setup打包时自定义页面
使用inno setup制作的安装包,默认只有安装欢迎页,目录选择页、正在安装页和安装完成页。除此之外,inno setup还提供了一些其它安装页面,如许可协议展示页、用户信息输入页等,并且还支持自定义页面。本文章就具体介绍下如何设置这样自定义页面。
2025-02-05 09:00:00
1114
原创 C++ STL之算法介绍
STL提供了大量的算法,用于对容器中的元素进行各种操作,包括排序、搜索、复制、移动、变换等。这些算法在使用时不需要关心容器的具体类型,只需要指定要操作的范围即可。
2025-01-16 21:18:52
894
原创 C++ STL之容器介绍(vector、list、set、map)
STL(Standard Template Library)即标准模板库。STL通过使用模板实现了容器和算法的分离,允许程序员编写与类型无关的代码,这正是泛型编程的核心思想。
2025-01-12 11:46:10
1380
原创 inno setup打包脚本中调用系统和自定义DLL库
Inno Setup中调用DLL库时,要在code段实现。code段是一个可选的指定Pascal脚本的段。Pascal脚本可以通过多种方法定制安装或卸载程序。
2024-12-28 12:03:05
883
原创 C++四种类型转换操作符 static_cast、dynamic_cast、reinterpret_cast、const_cast介绍
C风格的强制类型转换很简单,都可以使用Type b = (Type)a形式转换。但这种方式存在一些缺点,比如信息丢失或精度损失,代码可读性的下降等。因此C++提供了四种类型转换符来应对不同场合。分别是static_cast、dynamic_cast、reinterpret_cast、const_cast。
2024-11-23 18:35:52
1420
原创 C++11语法之Lambda表达式介绍
Lambda表示匿名函数,属于可调用对象,特点是就地定义就地使用。简单理解就是没有名称的函数。在任何需要可调用对象的接口,都可以传入一个lambda表达式。
2024-11-18 09:43:41
473
原创 C++ 多线程std::thread以及条件变量和互斥量的使用
本文章主要介绍C++11语法中std::thread的使用,以及条件变量和互斥量的使用。
2024-11-16 18:18:01
1172
原创 C++智能指针 shared_ptr 和 unique_ptr
传统C/C++编程中,使用new或者malloc动态申请内存后,必须手动调用delete或者free去释放,否则就会造成内存泄漏。在C++ 11语法中,提供了智能指针来管理内存,开发者不必再关心内存的释放问题,智能指针可以自动去释放管理的内存空间。
2024-11-10 11:53:16
1155
原创 C/C++二维码生成库qrencode编译与使用
qrencode 是一个用于生成 QR 码(Quick Response Code)的工具和库。QR 码是一种矩阵条形码或二维条形码,能够在水平和垂直方向上存储信息。qrencode 支持多种编码方式,并能够生成不同复杂度和错误校正级别的 QR 码。
2024-08-31 13:17:22
2677
1
原创 Qt实现json数据的生成、解析、修改和删除
本文章主要介绍如何使用QT提供的json相关类来处理json数据,包括json数据的生成、解析、修改和json数据的删除。
2024-08-23 18:51:38
1322
1
原创 makefile实现大型项目编译部署
本文章介绍了如何通过makefile编译部署一个大型项目。包括使用makefile生成静态库、动态库和可执行程序,使用makefile如何编译多个子项目,使用makefile进行程序的安装和卸载以及如何在makefile中执行shell脚本。最后通过一个完整的项目演示了makefile在大型项目中的使用。
2024-08-10 22:53:38
273
原创 CMake install如何安装目标、文件、目录和安装时执行代码
本文章主要介绍了CMake install的使用,包括如何使用CMake install 安装目标、安装文件,安装目录和安装时执行代码,并结合实例进行了演示。基本上覆盖了CMake install 90%以上的使用场景。
2024-07-28 10:32:08
352
原创 CMake生成Debug和Release目标程序时的一些配置
本文章将介绍在Windows和Linux平台,生成可执行程序时,如何设置Debug和Release的一些属性。主要介绍如何设置目标程序的生成路径,以及运行时库的设置和目标程序版本号的设置。
2024-07-21 10:57:15
6594
原创 使用OpenCppCoverage统计代码覆盖率
OpenCppCoverage 是一款专为Windows平台设计的开源C++代码覆盖率统计工具。
2024-07-20 09:49:34
1901
原创 GitLab CI/CD实现项目自动化部署
GitLab CI/CD 是 GitLab 中集成的一套用于软件开发的持续集成、持续交付和持续部署工具。这套系统允许开发团队自动化软件交付流程,从代码变更的检测、构建、测试到最终部署到生产环境的整个过程。
2024-07-07 12:53:35
4420
原创 密码学基础之ASN.1编码
ASN.1是一种国际标准的正式语言,由国际标准化组织(ISO)和国际电信联盟(ITU-T)共同制定,用于定义数据结构的抽象语法。它的设计目标是为了提供一种独立于特定计算机硬件、操作系统或编程语言的方式,来描述数据的结构和编码规则,以便在网络上传输和处理数据。
2024-06-29 18:54:28
4061
原创 PKCS#7签名介绍与代码实现
本文章主要介绍了PKCS#7签名、PKCS#7签名数据的结构、PKCS#7 Attach 和 Deatch的区别。并通过OpenSSL,用C代码实现了PKCS#7签名和验签,对签名数据进行了分析。
2024-06-23 12:12:01
1197
原创 Tongsuo(铜锁)项目介绍 - 实现国密SSL协议
本文章主要介绍了铜锁项目的编译,以及使用铜锁项目实现国密SSL通信、搭建支持国密SSL协议的Nginx服务器、支持国密SSL协议的libcurl的使用。
2024-06-22 22:59:13
1630
原创 CMake多行注释以及通过Message打印不同级别日志
本文章主要介绍了cmake的单行和多行注释语法,以及如何使用message输出不同级别的日志。
2024-06-17 08:52:01
1473
原创 SM2加密算法的公私钥和密文格式以及不同编程语言之间无法互相解密问题分析
本文章主要介绍了SM2加密算法的公钥、私钥和密文格式,以及对于不同编程语言之间无法互相解密问题进行了分析和处理。
2024-06-16 15:15:13
1608
原创 CMake编译安装、生成可执行程序、生成静态动态库以及静态动态库的链接
本文章介绍了CMake的安装,使用CMake生成可执行程序,生成静态和动态库以及静态库和动态库的链接。
2024-06-02 12:39:00
4179
原创 PAC代理技术详解以及PAC代理无法开启问题
本文章主要介绍了PAC代理技术,并通过一个实例演示如何实现PAC代理,通过PAC代理可以对原网页请求内容作修改再重新发送出去,并且还可以对网页的响应内容作修改再返回给浏览器。最后介绍了对于部分电脑出现的PAC代理无法开启问题给出了详细的解决方案。
2024-06-01 11:20:34
1348
原创 OpenSSL之API编程 - C/C++实现RSA非对称加密算法
本文章介绍了OpenSSL RSA非对称加密算法的相关接口,并使用C语言实现了RSA加解密
2024-05-30 08:54:53
430
原创 WMI技术介绍以及使用WMI技术获取系统信息
Windows Management Instrumentation(WMI)是Microsoft Windows操作系统中一个强大的管理框架,它允许管理员以及开发者以标准化的方式访问和控制系统的各种硬件、操作系统组件、应用程序以及网络资源。本文章主要介绍了WMI技术以及如何使用WMI技术获取系统信息。并且提供了一种判断带参进程是否运行的方法。
2024-05-25 12:49:54
480
原创 OpenSSL之API编程 - C/C++实现AES、DES、3DES、SM4对称加密算法
本文章介绍了OpenSSL计算对称加解密算法(AES、DES、3DES、SM4等)的相关接口,并使用C语言实现了AES和SM4加解密。
2024-05-23 19:38:28
747
1
原创 OpenSSL之API编程 - C/C++实现摘要算法和Base64编解码算法
本文章介绍了OpenSSL计算摘要算法(MD5、SHA1、SHA256、SHA512、SM3等)和Base64编解码的相关接口,并使用C语言实现了MD5摘要算法和Base64编解码算法。
2024-05-18 10:35:09
290
使用Qt实现的TCP调试助手
2023-11-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人