
COM组件_3
ATL下载 ATL 作为微软官方库,源码随 Visual Studio 安装包 默认集成 正确代码结构 接口定义(使用 IDL) 实现类(使用 ATL) 对象创建宏 客户端调用示例 完整示例 项目结构 ExampleComponent.idl 在 Visual Studio 中创...
ATL下载 ATL 作为微软官方库,源码随 Visual Studio 安装包 默认集成 正确代码结构 接口定义(使用 IDL) 实现类(使用 ATL) 对象创建宏 客户端调用示例 完整示例 项目结构 ExampleComponent.idl 在 Visual Studio 中创...
拉代码 开启VPN 用cmd设置 在某个位置创建文件夹 第一次拉代码用fetch breakpad 这是默认depot_tools已经下好了,并且环境变量也设置好了 遇到问题如下: 通过切分支解决 比如chrome_99 这个时候是第二次执行代码了,要用gclient sync ...
示例代码 WinDbg分析 启动调试 编译并运行程序 使用VS编译生成test.exe,并双击运行 附加到进程 启动 WinDbg,选择 File > Attach to Process,找到并选择运行的死锁程序 暂停程序执行 在 WinDbg 中,点击工具栏上的暂停按钮 ...
堆内存相关 定义和特点 堆内存是程序运行时动态分配的内存区域,由开发者手动申请和释放(如C中的malloc/free、C++的new/delete) 具有以下特点 生命周期长:内存存活周期由开发者控制,不随函数调用结束而释放 空间大且灵活:理论上可分配至系统可用内存上限,适合存储...
遗弃问题 互斥量概述 互斥量与所有其他内核对象有所不同,这是因为它们具有“线程所有权”的概念。 换句话说,互斥量会记住自己是哪个线程等待成功的。 互斥量的这种特殊性,使得它即使在未触发的状态下,也能为线程所获得。 什么是遗弃问题 当线程调用ReleaseMutex的时候,函数会检...
用户模式同步 Interlocked 系列函数 原理 通过 CPU 原子指令(如 LOCK XCHG)直接操作内存,无需进入内核态 场景 简单计数器(如引用计数) 无锁数据结构(如无锁队列) 特点 性能极高(无内核切换) 仅支持单个变量的原子操作,无法实现复杂同步 临界区(Cri...
两种高效的并发模式 并发编程的目的是让程序“同时”执行多个任务。 如果程序是计算密集型的,并发编程并没有优势,反而由于任务的切换使效率降低。 但如果程序是I/O密集型的,比如经常读写文件,访问数据库等,则情况就不同了。 由于I/O操作的速度远没有CPU计算速度快,所以让程序阻塞I...
进程实例句柄 加载到进程地址空间的每一个执行文件或者DLL文件都被赋予了一个独一无二的实例句柄。 可执行文件的实例被当作(w)WinMain函数的第一个参数hInstanceExe传入。在需要加载资源的函数调用中,一般都需要提供此句柄的值。 比如从一个可执行文件的映像中加载一个图...
异常的产生 CPU执行程序汇编代码时,发现了异常,然后把异常告诉了操作系统。 操作系统首先会让程序自身处理这个异常。 如果程序自身有能力处理,程序就继续运行。 有能力是值程序中有注册的异常处理函数。 如果程序没能力处理,这个异常还没被处理,操作系统就会来处理,操作系统就会提示用户...
MFT 所有数据的逻辑起点 在 NTFS 卷中,所有对象(包括文件、目录、系统数据)均以“文件”形式存在,而 MFT 正是这些文件的全局索引库 系统启动依赖: 系统启动时需先读取 Boot文件(引导扇区),而Boot 的位置信息由 MFT 记录 7 描述,形成“MFT → 引导程...
搜索当前分类