一些问题:数据模型、数据类型相关、WPARAM和LPARAM
cpp 数据模型和数据类型大小 C++ 数据类型的大小并不是完全固定的,而是由数据模型(Data Model)决定的 不同的操作系统和编译器组合会采用不同的数据模型 为什么有不同数据模型 Windows 选择 LLP64 是为了最大化 32 位代码兼容性 保持 long 为 4 ...
cpp 数据模型和数据类型大小 C++ 数据类型的大小并不是完全固定的,而是由数据模型(Data Model)决定的 不同的操作系统和编译器组合会采用不同的数据模型 为什么有不同数据模型 Windows 选择 LLP64 是为了最大化 32 位代码兼容性 保持 long 为 4 ...
动态规划 概述 动态规划通过将复杂问题分解为相互重叠的子问题,并利用存储中间结果来避免重复计算,从而高效解决具有最优子结构特性的问题 其核心在于 “状态定义” 和 “状态转移” 实现步骤 定义状态 (State Definition) 这是动态规划最基础且关键的一步。你需要定义一...
async 概述 用于简化异步任务执行的高级抽象 它的核心目标是让你能方便地启动一个任务并在未来获取其结果,而无需直接管理线程的生命周期、同步等底层细节 std::async可以看作是 std::promise, std::packaged_task和 std::thread的高...
加载器 加载器选项 适用文件类型 主要特点 场景 Portable executable for 80386 (PE) 32位 Windows 可执行文件 (EXE, DLL等) IDA能正确解析PE文件头、节区、导入/导出表等结构,自动识别处理器类型,提供最准确的反汇编结果 分...
共享内存 概述 核心在于让多个进程能够访问同一块物理内存区域,从而实现快速的数据共享 原理 将同一段物理内存映射到多个进程各自的虚拟地址空间 通信方式 进程直接读写该内存区域,无需内核在用户态和内核态间拷贝数据 高性能原因 避免了数据在用户态和内核态之间的拷贝,是速度最快的IPC...
概述 首先,stack是一个容器适配器 理论上,任何提供了 push_back(), pop_back(), back()等操作的序列容器都可以作为 stack的底层容器 为什么默认是deque deque之所以成为默认选择,是因为它在以下几个方面取得了最佳平衡: 相对于vect...
dumpbin.exe 概述 VS工具链中一个功能强大的命令行工具,用于分析 COFF(Common Object File Format)和 PE(Portable Executable)格式的二进制文件,堪称 Windows 开发者的二进制显微镜 命令 /ALL 显示除代码反...
概述 C++中的函数调用,本质上就是通过函数地址定位到进程地址空间的代码区中对应的指令序列,然后跳转执行 编译阶段 编译时 - 生成符号和调用指令 函数声明与符号生成 编译器看到函数 func 的声明(或定义)时,会将其名称作为一个符号(Symbol) 记录在目标文件(.o...
httplib使用 Get Post form-data 比较 Get 参数位置 url末尾(查询字符串或路径) 参数长度 受URL长度限制(通常2048字符内) 安全性 参数明文暴露在URL和浏览器历史中 幂等性 幂等(多次请求效果相同) 缓存 响应可被浏览器主动缓存 Post...
编译相关 #pragma init_seg 概述 是微软C++编译器中的一个编译指令,专门用于精细控制全局静态对象(包括静态变量)的构造和析构顺序 在解决复杂的初始化依赖或DLL加载问题时非常有用 语法 优先级 compiler 最高优先级 此组别的对象最先构造,最后析构 通常保...