
Windows进程通信相关
Windows相关 消息队列 PostMessage 将消息异步发送到指定窗口的消息队列 目标窗口可以是同一进程或不同进程的窗口 只要发送方持有目标窗口的有效句柄(HWND),即可跨进程发送消息 场景: 例如通知其他进程的窗口更新界面或执行特定操作 例如结合 WM_COPYDAT...
Windows相关 消息队列 PostMessage 将消息异步发送到指定窗口的消息队列 目标窗口可以是同一进程或不同进程的窗口 只要发送方持有目标窗口的有效句柄(HWND),即可跨进程发送消息 场景: 例如通知其他进程的窗口更新界面或执行特定操作 例如结合 WM_COPYDAT...
异常的产生 CPU执行程序汇编代码时,发现了异常,然后把异常告诉了操作系统。 操作系统首先会让程序自身处理这个异常。 如果程序自身有能力处理,程序就继续运行。 有能力是值程序中有注册的异常处理函数。 如果程序没能力处理,这个异常还没被处理,操作系统就会来处理,操作系统就会提示用户...
字符串 反转字符串 4个常量 解析 从_start开始 把INPUT地址放入rsi寄存器 通过异或将rcx清零 用cld清除方向标志位,让后续字符串操作从低地址向高地址进行。 保存返回地址,当exitFromRoutine结束后,正确返回 calculateStrLen 先判断r...
调试堆内存 启用用户堆栈跟踪(User Stack Trace) 方法一 通过 gflags.exe 为目标进程添加堆栈跟踪标志: 方法二: 打开Global Flags,设置如图示: 相关问题 在实践过程中,发现勾选Enable page heap之后,虽然点击上图的应用确认之...
源码实现 模板类函数指针 命名空间宏定义 与或判断选项开关 判断Windows安装某款字体 这里的实现是通过判断注册表来判断是否安装了某款字体。 应用 lbtoast_menu.h lbtoast_menu.cpp 弹出窗口 关于定时器 监听不到想监听的消息 需要在对应的消息映射...
数字表达式语法 基本语法规则 十六进制 前缀:0x 或 0n 例如:0x3A, 0n3A 十进制 直接写数字,无需前缀 八进制 前缀:0o 或 0 例如:0o72, 072 二进制 前缀:0b 例如:0b111010 支持操作符 加减乘除,取模 按位与,按位或,按位异或,按位非 ...
概述 当所有线程都能独自运行而不需要相互通信的时候,Microsoft Windows将进程最佳运行状态。 系统中的所有线程必须访问系统资源,比如堆、串口、文件、窗口以及无数其他资源。 如果一个线程独占了对某个资源的访问,那么其他线程就无法完成它们的工作。 以下两种基本情况下,线...
获取 通过一个COM接口的方式获取到一个管理器对象 ThreadHelper 是一个抽象类,接口run是抽象的 start 作为抽象基类,实现了start 主要功能是创建了一个线程(是跨平台的实现), 然后创建了一个Helper,调用了run run里面开始往列表里放数据 wai...
用户模式同步 Interlocked 系列函数 原理 通过 CPU 原子指令(如 LOCK XCHG)直接操作内存,无需进入内核态 场景 简单计数器(如引用计数) 无锁数据结构(如无锁队列) 特点 性能极高(无内核切换) 仅支持单个变量的原子操作,无法实现复杂同步 临界区(Cri...
定义 一般将进程定义成一个正在运行的程序的一个实例 一个内核对象,操作系统用它来管理进程。 内核对象也是系统保存进程统计信息的地方。 一个地址空间,其中包含所有可执行文件或DLL模块的代码和数据。 此外,还包含动态内存分配,比如线程堆栈和堆的分配。 进程要做什么事情,都必须让一个...
搜索当前标签