QT - 内存泄漏检测 一、安装vld-2.5.1-setup.exe 下载地址:https://archive.codeplex.com二、pro中添加头文件目录与库目录INCLUDEPATH += "C:\\Program Files (x86)\\Visual Leak Detector\\include"LIBS += "C:\\Program Files (x86)\\Visual Leak ...
QT - 制作窗口圆角 一、设置窗口属性setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint);setAttribute(Qt::WA_TranslucentBackground);二、使用qss添加圆角#titleWnd{background-color:gray;bo
wxWidgets学习笔记(5)- wxTextCtrl wxTextCtrl学习笔记 1、继承关系可多重继承自streambuf默认集成自wxControl->wxWindow->wxEvtHandler->wxObject2、头文件(在wxWidget中每个控件都是单独的一个类)wx/textctrl.h 3、窗口类型wxTE_PROCESS_ENTER 生成 wxEVT_COMMAND_TEXT_ENTE
Springboot - 自定义RequestBody校验注解 自定义RequestBody校验注解1、使用示例package com.wyanlord.demo1.controller.req;import com.wyanlord.demo1.validator.CustomValidator;import com.wyanlord.demo1.validator.CustomValidatorAware;import lombok.Getter;import lombok.Setter;import lombok.ToString;import
select、poll、epoll介绍,以及libevent2的使用示例 一、socket1、TCP协议的三次握手中SYN,ACK,Seq含义关于三次握手流程a)C端向S端发送位码SYN=1,SEQ=Cxxxx,S端发现是SYN=1位码,得知C是来请求联机的。b)S端确认联机信息后,返回给C四条信息,SYN=1, ACK=1, ACKnumber=Cxxxx + 1,SEQ=Sxxxx。c)C端确认SYN=1, ACK=1,校验ACKnumber正确,再次向S端发送ACK=1,ACKnumber=Sxxxx+1,成功建立联接。其中,第一次请求联机时,C端的socket
openssl - 常用加解密函数md5、sha1、aes、rsa和base64 1、MD5加密#include <cstdio>#include <cstring>#include <openssl/md5.h>#include <cstdlib>char *md5(const char *src);int main() { char *str = md5("123456"); printf("%s", str); free(str); return 0;}char *md5(con
Deepin - 装机必备软件记录 一、常用的命令行工具sudo apt install -y vim git curl pluma meld vlc remmina uget aria21、vim下载主题,文件放在~/vim/colors下面https://github.com/sickill/vim-monokai下载配置管理工具git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim预设配置文件~/.vimrc,使用P
nginx - 常用配置记录 一、nginx内置常用变量使用curl模拟请求curl --location --request POST 'http://localhost:8081/ngx_vars?a=1&b=2' \--header 'Content-Type: application/json' \--header 'request_id: aabbcc' \--header 'Authorization: Basic Og==' \--data-raw '{"hello": "world"}'使用
高并发系统设计笔录 1、通用设计方法纵向扩展,分库分表前置缓存,内存加速消息队列,异步处理2、架构分层简化系统设计,让不同的人专做不同的事系统复用,提升研发的效率易于扩展,对模块业务单独做扩展3、数据库优化连接池,基于池化技术,连接复用,降低数据库连接数主从复制,读写分离,数据冗余,使用缓存分库分表,业务类型垂直拆分,单表按照哈希或时间水平拆分,分区键表冗余分布式ID,数据库按步递增...
Rust - 过程宏 一、添加过程宏依赖库1、过程宏,类似其他语言的运行时反射机制2、官方的过程宏库为proc_macro,不推荐直接使用3、推荐更友好的syn、quote和proc_macro2这3个库4、过程宏,必须写在单独的lib类型的crate中[lib]proc-macro = true[dependencies]syn = "1.0.17"quote = "1.0.3"proc-m...
Rust - mysql<sqlx> 新的选择 一、添加mysql依赖sqlx 是同时支持tokio2.0和async-std的异步mysql[dependencies]tokio = {version = "0.2.15", features = ["full"] }sqlx = {version = "0.3", default-features = false, features = ["runtime-tokio", "my...
Rust - 常用的三方库集合 一、once_cell是一种只执行一次的容器,多用于全局变量,安全初始化,或者延迟初始化set(T) => 安全的设置全局变量get() -> T => 获取已经设置的全局变量get_or_init(Fn) => 获取全局变量,为空则初始化Lazy::new(Fn) => 延迟创建全局变量use std::{sync::Mutex, collect...
Rust - log 日志输入到文件 一、添加 log 依赖库log4rs 是模仿log4j的java库[dependencies]log = "0.4.8"log4rs = "0.11.0"二、配置详解1、appenders 输出到什么地方a) kind:指定类型console:控制台file:普通的日志文件rolling_file:可以分割处理的日志文件b) path:指定文件路径c) appen...
Rust - validator 结构体字段验证 一、添加 validator 依赖库validator 是基于过程宏的方式注入[dependencies]validator = "0.10.0"validator_derive = "0.10.0"serde = "1.0.105"serde_json = "1.0.50"serde_derive = "1.0.105"二、使用示例1、注入过程宏#[macro_use]...
Rust - mysql 增删改查 一、添加mysql依赖mysql_async 是基于tokio2.0的异步mysql[dependencies]mysql_async = "0.22.2"tokio = "0.2.13"二、设置database_url,创建连接池DSN:mysql://root:root@127.0.0.1:3306/testdb?pool_min=10&pool_max=100&am...
Rust - PhantomData | NotNull 一、PhantomData<T> 是一种幻象数据类型,幻象就是无实体,只能看见,无法使用。1、当我们需要在结构体S中加入一个不使用的类型T,只是为了告诉编译器,当前结构体S和类型T有某种潜在关系,当drop检查的时候可以作为一种参考。2、可以改变struct的型变,以便满足编译器的检查要求二、型变,分为协变、不变、逆变。协变:A是B的子类型,那么Box<A> ...