hook和钩子函数

devtools/2025/3/3 15:19:53/

1.介绍

钩子函数(Hook Function) 本质上是一种回调callback机制,它允许程序在特定事件发生时执行用户自定义代码。一种实现方式。

Hook 是一种更广义的概念,指拦截或修改函数行为,而钩子函数是 Hook 的一种具体实现方式。

钩子函数 主要用于:

  • 回调机制(在事件发生时执行自定义代码)
  • 框架扩展(如 Qt 的 eventFilter()
  • 系统 Hook(拦截按键、鼠标等事件)

2.例子

回调机制。

#include <iostream>
#include <functional>// 定义钩子函数指针
std::function<void(int)> HookFunction = nullptr;// 触发事件时调用钩子
void DoSomething(int value) {std::cout << "Doing something with " << value << std::endl;// 如果有钩子函数,调用它if (HookFunction) {HookFunction(value);}
}// 自定义钩子函数
void MyHook(int value) {std::cout << "Hook triggered! Value: " << value << std::endl;
}int main() {// 设置钩子HookFunction = MyHook;// 触发事件DoSomething(42);return 0;
}

运行结果:

Doing something with 42
Hook triggered! Value: 42


http://www.ppmy.cn/devtools/164216.html

相关文章

【网络安全 | 漏洞挖掘】利用文件上传功能的 IDOR 和 XSS 劫持会话

未经许可,不得转载。 本文涉及漏洞均已修复。 文章目录 前言正文前言 想象这样一个场景:一个专门处理敏感文档的平台,如保险理赔或身份验证系统,却因一个设计疏漏而成为攻击者的“金矿”。在对某个保险门户的文件上传功能进行测试时,我意外发现了一个可导致大规模账户接管…

Elasticsearch简单学习

1、依赖的导入 <!--ES依赖--> <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId> </dependency>2、客户端链接 RestHighLevelClient client new RestHigh…

Android Activity启动流程详解

目录 Activity 启动流程详细解析 1. 应用层发起启动请求 1.1 调用 startActivity() 1.2 通过 Instrumentation 转发请求 2. 系统服务处理&#xff08;AMS 阶段&#xff09; 2.1 Binder IPC 通信 2.2 AMS 处理流程 2.3 跨进程回调 ApplicationThread 3. 目标进程初始化…

基于机器学习的结构MRI分析:预测轻度认知障碍向阿尔茨海默病的转化

摘要 阿尔茨海默病是一种致残性神经退行性疾病&#xff0c;目前尚无有效的治疗方法。预测阿尔茨海默病的诊断对患者的预后至关重要&#xff0c;但目前的阿尔茨海默病生物标志物检测方法具有侵入性、耗时且昂贵。因此&#xff0c;开发基于MRI的计算方法用于阿尔茨海默病的早期诊…

RISC-V汇编学习(一)—— 基础认识

最近这三年的工作时间大部分的工作&#xff0c;都是基于riscv的cpu和接口ip开发适配驱动&#xff0c;时不时的就要debug测试代码&#xff0c;面对很多都是汇编&#xff0c;所以也是整理下积累的一点点笔记&#xff0c;系列博客将总结下riscv相关的内容&#xff0c;一是给有需要…

【Unity精品源码】Ultimate Character Controller:高级角色控制器完整解决方案

&#x1f4c2; Unity 开发资源汇总 | 插件 | 模型 | 源码 &#x1f493; 欢迎访问 Unity 打怪升级大本营 在Unity游戏开发的世界中&#xff0c;角色控制器是构建游戏互动性的核心组件之一。Ultimate Character Controller是一款专为Unity引擎设计的高级角色控制器&#xff0c;它…

python中单例模式介绍(含线程安全的单例模式)

理解单例模式之前&#xff0c;确实需要先掌握 __init__、__new__ 和 __call__ 这三个方法的作用和调用顺序。如有需要&#xff0c;读者可跳转下方链接学习&#xff1a; python中的__init__、__new__、__call__-CSDN博客 正文开始&#xff1a; 在Python中&#xff0c;单例模式&…

Qt 文件操作+多线程+网络

文章目录 1. 文件操作1.1 API1.2 例子1&#xff0c;简单记事本1.3 例子2&#xff0c;输出文件的属性 2. Qt 多线程2.1 常用API2.2 例子1&#xff0c;自定义定时器 3. 线程安全3.1 互斥锁3.2 条件变量 4. 网络编程4.1 UDP Socket4.2 UDP Server4.3 UDP Client4.4 TCP Socket4.5 …