C++ 标准库中缺少的字符串函数:`starts_with` 和 `ends_with`
C++ 标准模板库的 std::string 很好很强大,但是并没有提供判断一个字符串是否以另一个字符串开始/结束的接口。这里为 std::basic_string<charT> 提供这两个接口。//string_predicate.hpp#include <string>n
C++ 标准模板库的 std::string 很好很强大,但是并没有提供判断一个字符串是否以另一个字符串开始/结束的接口。这里为 std::basic_string<charT> 提供这两个接口。//string_predicate.hpp#include <string>n
简单的GDI操作窗口程序的本质 :GUI GDIGDI: Graphics Device Interface,图形设备接口,这是Windows提供的一组用于绘制图像的APIGUI: Graphical User Interface,图形用户界面,是指用户操作软件的界面方式,以区别于字符方式说白了 G
消息机制与模拟消息消息机制硬件产生事件被操作系统捕获,封装成消息操作系统发送到系统消息队列再由操作系统由系统消息队列发送到 对应的线程内核对象中的线程消息队列线程消息队列处理完毕后,将时间送回操作系统由操作系统调用窗口回调函数 => WindowProc()线程消息队列 处理GetMessag
新建一个窗口程序消息机制创建窗口的几个步骤创建窗口类注册窗口类创建窗口显示窗口构建消息循环创建过程demo : https://github.com/luodaoyi/cpp_code/tree/master/MemoryInjectTool/CreateWindows//1 创建窗口类型模板
以文件为后背存储区的内存交换文件各种后备存储器的内存映射文件以磁盘中文件系统的具体文件为后备存储的页交换文件(文件映射)以页交换文件("虚拟内存")为后备存储器的页交换文件(共享内存)页交换文件(虚拟内存)通过CreateFileMapping api 创建文件映射内核对象,在内
页交换文件与内存映射文件内存的几种状态和类型私有类型:使用VitualAlloc申请分配/调拨内存后,申请的内存只能被当前进程使用。其他进程无法访问。这就是所谓的私有内存映射类型 -> 页交换文件(虚拟内存)页交换文件补充了我们的物理内存的不足。在内存中长时间不活跃的数据,系统会将内存写入页交
事件和线程同步函数//创建一个时间对象HANDLE CreateEvent( LPSECURITY_ATTRIBUTES lpEventAttributes, // SD 安全属性 BOOL bManualReset, // reset type 0自
线程的创建和控制进程和线程的关系:进程提供资源,线程使用资源完成工作创建线程函数HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, // SD /安全属性 DWORD dwStackSize,
句柄表和继承句柄代表着备操作的对象句柄的本质(handler)句柄表可以看做一个非常大的结构体数组句柄表的结构索引值: 进程通过索引找到句柄表中对应的选项内核对象地址: 通过地址直接找到对应的内核对象访问掩码: 控制了访问权限标志位: 标志改句柄能否被继承句柄表是如何工作的:每个进程的内核对象,都有
ListView控件 实现简单进程管理用到的相关api函数//获取控件句柄HWND GetDlgItem( HWND hDlg,//获得控件所处的窗口的句柄 int nIDDlgItem //控件id);//初始化列表的列 (listview插入新的一列int ListV