摘要:
cherry-snippet v2版本 介绍 cherry-snippet 是借助 cherryTree 笔记软件,制作的免费开源文本片段管理工具 注: 目前还处于beta版本, 稳定版本cherry-snippet v1 v1->v2 改进: 用webview2预览、 d2d绘制hook界面、li 阅读全文
摘要:
双向链表 插入操作: 传入指向根节点的指针 current指针,next指针遍历操作 current指向新节点,newnode指向next 向后指针需要分情况,是否为跟节点,是否为尾部 typedef struct doublenode{ struct doublenode *fwd; struct 阅读全文
摘要:
加载中文字体 用户调用的第一个AddFontxx api,会加载字体到默认字体 mergeMode模式,需要提前加载一个字体 不用merge模式,加载一系列字体 中文帮助 阅读全文
摘要:
结构体 初始化结构体 // 使用C++11初始化结构体 Person p = { .age = 20, .name = "John" }; 列表初始化 类 C++11标准引入了“默认成员初始化”特性,允许我们在类的声明中给成员变量赋初值,这样就不需要显式地在每个构造函数中初始化成员变量了。 cons 阅读全文
摘要:
模式|文件流|说明| -|-|- ios::in| fstream ifstream| 读取、不存在报错 ios::out| ofstream fstream | 输出、清空、创建 ios::app| ofstream fstream |追加、创建 ios::ate|ifstream| 读取、移动到 阅读全文
摘要:
string 类型可以存储任意二进制数据,并没有限制存储的字符类型 字符串是按照一定的编码规则的二进制数据,例如 “a” 内存中是0x97,utf8 utf16等编码规则 base64是对于任意二进制数据,转为base64编码的字符串(ascii) 由于string可以存储任意的二进制数据,因此可以 阅读全文
摘要:
草图 阅读全文
摘要:
cpp11 引入了列表初始化,统一了对象的初始化方式,使得代码更加统一。 string a{"hello world"}; int a{"10"}; class A { int a; int b; }; A o{1, 2}; vector<int> v{1, 2, 3}; vector<string 阅读全文
摘要:
对象的成员函数可以通过将其作为函数指针或者函数对象来传递。具体有以下两种方式: 作为函数指针传递 可以使用类似于普通函数指针的语法,将成员函数的指针传递给另一个函数。需要注意的是,由于成员函数包含一个隐式的 this 指针,因此我们需要提供一个对象指针来调用该函数。 例如,考虑以下代码: class 阅读全文
摘要:
#include <iostream> #include <vector> #include <map> typedef int (*EventHandler)(void*); class EventTable { public: void Register(int event_type, Even 阅读全文
摘要:
记录下最近对这几个概念的理解。 先有的事物,才有的对事物的描述,然后把这些通用的描述定义成概念。 阻塞和非阻塞 程序从main函数开始,然后进行不断的函数调用。 有的函数返回很快,有的函数返回很慢。很慢的原因一般是执行复杂的运算或者io操作耗时。 如果一个函数设计成立即返回,那么这次函数调用就是非阻 阅读全文