![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
文章平均质量分 75
CodeStarr
Make good use of your time
展开
-
GoogleTest笔记
文章目录基本概念VS+gtestcmake+gtestGoogle Mock官网:https://google.github.io/googletest/Quickstart cmake: https://google.github.io/googletest/quickstart-cmake.html推荐从primer文档开始:https://google.github.io/googletest/primer.htmlSamples: https://google.github.io/googl原创 2022-03-30 17:10:25 · 679 阅读 · 0 评论 -
stl-numeric库使用
文章目录accumulatepartial_sumadjacent_diffentenceinner_productiotaaccumulate累加运算。它的特点是参数中有初始值。template <class InputIterator, class T>T accumulate (InputIterator first, InputIterator last, T init...原创 2020-03-27 10:54:47 · 266 阅读 · 0 评论 -
vs中的字符串
文章目录1. string2. System::String3. BSTR4. _bstr_t注意5. CComBSTR注意6. CString7. 转换7.1 Converting from char *7.2 Converting from wchar_t *7.3 Converting from _bstr_t7.4 Converting from CComBSTR7.5 Convertin...原创 2020-03-07 16:38:10 · 2028 阅读 · 0 评论 -
Regular Windows API
文章目录一、进程创建进程遍历进程终止进程打开进程获取进程 ID获取进程可执行文件路径遍历进程模块信息获取指定模块句柄获取模块内函数地址动态加载 DLL卸载DLL获取进程命令行参数读写远程进程数据:申请内存修改内存属性:释放内存获取系统版本(Win NT/2K/XP<0x80000000)读写进程优先级2. 线程创建线程挂起与激活线程获取线程退出代码:等待线程退出(线程受信状态或超时):遍历线...原创 2020-01-18 10:52:39 · 365 阅读 · 0 评论 -
C库
文章目录标准库框架人工智能异步事件循环音频生态学压缩并发性容器密码学数据库调试游戏引擎图形用户界面图形图像处理国际化Jason日志机器学习数学多媒体网络物理学机器人学科学计算脚本序列化视频虚拟机Web应用框架XML多项混杂编译器在线编译器调试器集成开发环境(IDE)构建系统静态代码分析标准库C++标准库,包括了STL容器,算法和函数等。C++ Standard Library:是一系列类和...原创 2020-01-17 15:42:46 · 443 阅读 · 0 评论 -
c++_STL_3_算法(未完)
函数对象文章目录函数对象1. 函数对象做参数和返回值2. 谓词二元3. 预定义函数对象和函数适配器函数适配器4. stl的容器算法迭代器的设计理念5. 两个修改型算法for_each()transform()两者比较<algorithm>是所有stl头文件中最大的一个。<numeric>很小,只有几个在序列上进行数学运算的模板函数。<functional>...原创 2019-12-19 20:03:41 · 209 阅读 · 0 评论 -
c++_stl-2
文章目录4. deque容器5. stack容器6. queue容器6.1 priority_queue7. List容器删除8. Set和MultSet8.1 添加和删除8.1.1 pair8.2 查找9. Map和MultMap9.1 添加、删除、遍历9.2 查找10. 各个容器比较API可访问cplusplus.com/reference4. deque容器deque<int&g...原创 2019-12-19 20:02:55 · 233 阅读 · 0 评论 -
c++_STL-1_string_vector
文章目录1. stl基本概念1.1 容器1.2 c++标准库1.3 值拷贝2. string2.1 初始化2.2 遍历2.3 转换为指针2.4 连接2.5 查找和替换2.6 删除和插入2.7 算法3. vector容器3.1 构造、添加、删除3.2 迭代遍历迭代器3.3 插入3.4 删除1. stl基本概念Standard Template Library,由惠普开发的一系列软件的统称,现在主...原创 2019-12-19 20:02:11 · 291 阅读 · 0 评论 -
一个简单的dll注入demo
dll注入文章目录dll注入1. 注入方式1.1 远程线程注入1.2 消息钩子注入2. 代码示例bullet.dllinject.cppdll注入就是在一个不需加载某dll的进程中,强行加载此dll(加入自己的代码),修改目标程序功能。应用有游戏辅助、输入法、安全软件拦截功能。需要3个项目:dll文件 + 注入程序目标文件先说一下,32位dll只能注入到32位进程,64位dll也只...原创 2019-10-18 10:53:32 · 1561 阅读 · 0 评论 -
windows编码小结
文章目录T版函数字符串转换api数字字符串转换字符串处理函数ascii又叫多字节编码,每个字符1字节;unicode又叫宽字节编码,每个字符2字节,支持多种语言,是windows底层支持的语言,所以编程时使用unicode更高效。asciiunicodedatatypecharwchar_tCHARWCHARWinMainWinMainwWinM...原创 2019-08-26 09:39:19 · 334 阅读 · 0 评论 -
PE解析器
文章目录mainPE.hPE.c构造函数RVA转文件偏移判断PEDOS&NT头文件头可选头区块头表导出表导入表资源表重定位表TLSdll延迟载入PE解析这东西,记着所有RVA转file offset然后加上缓冲区地址就行了。main#include <iostream>#include "PE.h"int main(){ TCHAR path[MAX_PATH]...原创 2019-10-10 14:30:21 · 1133 阅读 · 0 评论 -
VS之DLL延迟载入
dll延迟加载文章目录dll延迟加载vs配置代码示例在PE中的结构体延迟加载机制是为了提高进程加载效率的技术。延迟加载机制没有对dll任何特殊要求,也就是说任意的一个DLL都可以被延迟加载(除了kernel32.dll)。vs配置#include <windows.h>#include <delayimp.h>#pragma comment(lib, "Del...原创 2019-10-10 14:26:54 · 1793 阅读 · 0 评论 -
2 assembler & 2 disassembler
文章目录反汇编引擎:BeaEngineCapstone汇编引擎:XEDParsekeystone反汇编引擎:BeaEngine把headers和库文件win32两个文件夹拷贝到项目目录下。预定义宏、包含头文件和库文件#include "stdafx.h"#include <windows.h>#define BEA_ENGINE_STATIC#define BEA_US...原创 2019-09-27 14:26:53 · 833 阅读 · 1 评论 -
c++的4种调用方式
文章目录__cdecl__stdcall__fastcall__thiscall代码验证__cdeclc默认的函数调用方法。参数从右到左入栈调用者清栈(手动清栈),add esp, xxx所以,参数由调用者维护,可变参数函数只能用此约定。输出函数名前会加上一个下划线前缀。__stdcallc++标准调用方式。参数从右到左入栈,成员方法this最后入栈;被调用者清栈(自动清...原创 2019-09-25 14:44:56 · 3054 阅读 · 0 评论 -
windows线程同步问题
文章目录线程同步问题原子操作临界区互斥体mutex信号量生产者消费者问题事件(最推荐使用)线程同步问题两种情况:访问共享资源,措施是互斥;线程执行有顺序要求,措施是同步(且互斥)。原子操作InterlockedIncrement(), 整型变量自增1;InterlockedExchangeAdd(), 加一个数;InterlockedExchange(), 32位赋值;In...原创 2019-09-03 16:21:27 · 291 阅读 · 0 评论 -
c++_顺序表
文章目录抽象数据类型时间复杂度线性表顺序表链表数据:被计算机识别、处理的描述事物的符号集合。数据项:数据不可分割的最小单位。数据元素:有一定意义的基本单位,如某个对象。数据对象:性质相同的数据元素的集合,如数组。数据结构:相互之间存在一种或多种关系的数据元素集合。逻辑结构:集合结构线性结构树形结构图形结构物理结构:顺序存储结构链式存储结构算法:解决特定问题的...原创 2019-08-16 18:53:18 · 501 阅读 · 2 评论 -
c++_vbptr和vfptr
文章目录虚基表虚函数表虚基表#include<iostream>class Base{public: char m_base1; char m_base2; Base(int a) : m_base1(a),m_base2(a){}};class Child : virtual public Base{public: char m_child; Chil...原创 2019-08-14 14:34:02 · 1145 阅读 · 0 评论 -
linux系统编程-基础
linux系统编程-1-基础文章目录linux系统编程-1-基础1. 基础进程环境变量进程控制gdb2. exec函数族3. dup24. wait()waitpid()1. 基础进程0-3G用户空间需要映射到各自的物理内存;不同进程的3-4G内核空间映射到同一物理内存。每个进程在内核(3-4G)中都有一个PCB来维护进程相关的信息,Linux内核的进程控制块是task_struct结...原创 2019-07-12 15:04:57 · 496 阅读 · 0 评论 -
linux系统编程-信号-1
linux系统编程-信号捕捉文章目录linux系统编程-信号捕捉0x00 . 基本概念产生信号的方式信号处理0x01. 未决信号集和阻塞信号集阻塞信号集(信号屏蔽字)未决信号集0x02. kill()raise() & abort()0x03. alarm()setitimer()0x04. signal()0x05. 信号集操作函数0x06. 信号捕捉内核信号捕捉过程0x00 . 基...原创 2019-07-15 15:18:21 · 273 阅读 · 0 评论 -
c提高1
文章目录数据类型数组类型赋值变量三要素内存四区栈堆全局区代码区指针野指针间接赋值输入输出特性constmalloc()指针参数C字符串初始化1. 指定长度2.不指定长度3.用字符串初始化数组指针操作字符串一级指针内存模型二级指针第一种模型第二种模型第三种模型数据类型数据类型{简单类型{基本类型{整型(int)浮点型(float,double)字符型(char)空类型(void)用户基本类型枚举...原创 2019-04-28 22:51:32 · 185 阅读 · 0 评论 -
c提高3-文件
文章目录文件操作文件分类文件api配置文件项目示例大文件加解密文件操作文件分类按文件的逻辑结构:记录文件流式文件按存储介质:普通文件设备文件按数据的组织形式:文本文件二进制文件文件api文件读写:fgetc,fputc,字符读写fgets,fputs,行读写fread,fwrite,块读写,格式化读写文件控制;文件是否结束;文件指针的定位、跳转。...原创 2019-05-03 11:13:07 · 134 阅读 · 0 评论 -
c提高4-dll
文章目录动态库win32环境dll原理创建dll调用dll内存泄漏动态库win32环境dll原理dll这种PE文件由全局数据、服务函数和资源组成。windows加载dll模块时将进程函数调用并与dll文件的导出函数相匹配。win32环境中,每个进程都复制了自己的读/写全局变量,若想与其它进程共享内存,必须使用内存映射文件或声明一个共享数据段。dll需要的堆栈都是从运行进程的堆栈中分配的。...原创 2019-05-03 11:13:30 · 160 阅读 · 0 评论 -
c提高5-链表
文章目录链表分类编程元素linux内核链表通用链表链表关键字:非连续存储,动态生成,指针连接,数据与和指针域。分类按头节点:带头链表(头节点无数据域)不带头链表按节点组织形式:单向链表双向链表循环链表按存储结构:静态链表,用数组实现或栈中分配内存,连续存储,容量固定。动态链表,用malloc()等内存申请函数实现。编程元素pHead,pCurrent,pP...原创 2019-05-03 11:13:52 · 157 阅读 · 0 评论 -
linux开发套件-gcc_makefile_ctags_cscope
文章目录gcc编译静态库制作步骤优缺点动态库制作步骤gcc编译gcc foobar.c会生成a.out可执行文件。windows环境变量中配好mingw/gcc.exe,则默认生成a.exe,-o a则生成a.exe。一个c项目的目录大概如下:srcmain.cincluderesbin(lib+so)debugreleasec编译成可执行文件有4步:预处理:宏定义...原创 2019-04-28 22:57:19 · 302 阅读 · 0 评论 -
c++_note_5_继承和多态
文章目录5.继承关于子类构造析构父子同名成员虚继承6.多态实现条件多态实现原理关于vptr分步初始化虚析构函数重载\重写\重定义父类和子类指针的步长纯虚函数和抽象类5.继承继承方式\父类级别publicprotectedprivatepublicpublicprotectedprivateprotectedprotectedprotectedpriva...原创 2019-03-21 10:59:59 · 144 阅读 · 0 评论 -
c++_note_4_运算符重载
文章目录4.运算符重载复数类示例成员函数重载关于&&和||MyString类示例4.运算符重载运算符重载的两种方法:全局函数成员函数基础的有一元、二元、加减、++和–。运算符原有意义没有失去,只是定义了某类的新运算符。运算符重载的本质是函数调用。运算符函数可以重载为成员函数或友元函数,区别是有无this。c3 = operator+(c1,c2);c3 = ...原创 2019-03-21 10:59:28 · 120 阅读 · 0 评论 -
c++_note_3_面向对象基础
文章目录3.面向对象基础3.1 类对比structthis3.2 构造和析构构造函数copy构造函数析构函数3.3 浅拷贝3.4 初始化列表3.5 对象的动态建立和释放3.6 static3.7 常量成员函数3.8 友元类和友元函数3.9声明和定义分离--工程示例这一部分只包括零散的面向对象知识点,封装、继承、多态等重要特性在另一篇笔记里记录。3.面向对象基础3.1 类c中,数据和函数...原创 2019-03-21 10:58:56 · 134 阅读 · 0 评论 -
c++_note_2_引用
文章目录2.引用2.1 引用本质2.2 分类2.3 间接赋值2.4 函数返回值为引用做右值做左值2.5 指针的引用2.引用引用可看作一个已定义变量的别名。int a = 1;int &b = a; // int * const b = &a; 必须初始化b = 2; // *b = 2;定义引用时必须用其它变量初始化。这是c++的语法范畴,是...原创 2019-03-21 10:57:59 · 135 阅读 · 0 评论 -
c++_note_1_c++对c的扩展
文章目录1.1 命名空间1.3 register1.4 全局变量的检测1.5 struct1.6 变量和函数必须有类型1.7 bool类型1.8 三目运算符1.9 关于const真正的常量对比宏常量成员函数1.10 函数扩展inline默认参数占位参数函数重载函数指针#1. c++对c的扩展变量定义方面:命名空间,不能重复定义全局变量,定义位置更灵活。数据类型方面:struct,regist...原创 2019-03-21 10:57:32 · 210 阅读 · 0 评论 -
C语言socket编程
文章目录基本套接字函数(8个)socket()socketpair()bind()listen()connect()accept()read()&amp;amp;write()高级套接字函数send()&amp;amp;sendto()&amp;amp;recv()&amp;amp;recvfrom()sendmsg()&amp;amp;recvmsg()readv()&amp;amp;writev()close原创 2018-11-20 09:37:16 · 3067 阅读 · 0 评论 -
c++_note_7_模板
文章目录8. 模板8.1 模板机制原理8.2 模板函数与普通函数的区别8.3 类模板8.3.1 类模板派生8.3.2 类模板中的static关键字8. 模板函数模板也叫泛型编程,就是建立一个通用函数,函数类型和参数类型不具体指定,而是用虚拟类型代表。这个通用函数就叫做函数模板。模板(函数模板和类模板){模板函数模板类−−>对象模板(函数模板和类模板)\begin{cases...原创 2019-05-03 16:51:53 · 148 阅读 · 0 评论 -
c++_note_8_类型转换
文章目录9. c++类型转换static_castreinterpret_castdynamic_castconst_cast9. c++类型转换c仅支持强制类型转换(cast),TYPE a = (TYPE)a;c++支持4种风格的类型转换操作符:static_cast,reinterpret_cast,重新解释类型,相当于强制转换dynamic_cast,如子类和父类之间的多态类...原创 2019-05-03 23:07:42 · 144 阅读 · 0 评论 -
c++_note_9_异常处理
文章目录10. 异常10.1 异常的基本思想10.2 unwinding10.3 异常接口声明10.4 异常变量的生命周期10.5 继承在异常中的应用10.6 标准异常类10. 异常基本语法有两种:抛出异常捕获处理。发生异常后:throw抛出,若被捕捉,则跨函数直接跳到匹配的catch()保护段;若无法处理,可以再次throw向上抛出;若没有处理,则引发中断。throw会...原创 2019-05-04 21:40:45 · 200 阅读 · 0 评论 -
c++_note_10_io
文章目录11. io11.1 标准io11.1.1 标准输入流11.1.2 标准输出11.2 文件io输入输出11. ioc++的io包括三部分:键盘、文件、内存,分别简称标准i/o、文件i/o、串i/o.iosistreamostreamifstreamistringstreamiostreamofstreamostringstreamfstream11.1 标准io11.1.1 标...原创 2019-05-05 18:51:03 · 178 阅读 · 0 评论 -
c提高2
文章目录数组数组类型数组指针类型多维数组多维数组空间多维数组传参指针数组自我结束能力结构体定义方法成员偏移量数组数组类型typedef int (MyArray)[5];MyArray a; //int a[5]关于步长问题:int a[3];a代表数组首元素地址&a代表整个数组的地址a+1步长为sizeof(int)&a+1步长为sizeof(int)*3...原创 2019-05-03 11:12:29 · 212 阅读 · 0 评论