- 博客(4)
- 收藏
- 关注
原创 32位windows 进程和线程基础
进程虚拟地址空间用户所使用的栈、堆内存空间都是在用户空间去分配文件系统的缓存、driver使用的缓存都是存在和心态地址空间用户态虚拟地址空间状态free:该段地址空间可自由分配reserving:该段地址空间被预订,但是未被映射到物理地址中,无法被分配committed:该段地址空间被映射到物理地址空间了进程使用的内存的类型private bytes:进程的虚拟地址空间中已被分配的内存,不包括和其他进程共享的内存(如共享的动态链接库文件,kernel32.dll、user32.dl
2022-03-28 15:05:13
391
原创 windows内核基础
windows分层模型硬件抽象层屏蔽了硬件实现功能的细节。IRP为内核层重要的数据结构。物理地址和虚拟地址x64的cpu仅仅支持64位地址中的前48位。其中若虚拟地址为内核,则前16位为ffff;若虚拟地址为用户模式,则前16位为0000。用户能看到的所有地址都是虚拟地址,CPU当中的寄存器CR3,保存了页表基地址的物理地址虚拟地址转换物理地址Windows Token访问令牌(Access Token)是WIndows操作系统用于描述进程、线程安全上下文的对象。不同用户登录OS后
2022-03-26 15:29:12
4113
1
原创 visual studio基础
程序解释过程预处理(宏处理):把头文件和源文件合并编译:把源码编译为汇编语言,每一个.cpp单独编译处理汇编:把汇编语言解释为二进制机器语言 (cpp转为.obj)链接:将.obj与lib文件合并,形成.exe或者.dll文件windows程序中还包括了资源文件.rc(各种UI组件)visual studio项目文件解析NOTE:避免使用vs最新版本作为开发IDE,容易出bug。项目文件:.vcxproj:定义了项目的配置信息.vcxproj.filters:定义了项目的目录.
2022-03-25 21:58:01
435
原创 c++常用转换函数
宽字符转UTF-8std::string UnicodeToUtf8(const LPCWSTR unicode){ int len; len = WideCharToMultiByte(CP_UTF8, 0, unicode, -1, NULL, 0, NULL, NULL); char* szUtf8 = (char*)malloc(len + 1); memset(szUtf8, 0, len + 1); WideCharToMultiByte(CP_UTF
2021-11-16 08:58:09
397
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人