Win32 C++是否可以使用过程发送额外信息
Win32 C++ Can Extra Info be Sent with a Procedure
我一直在努力避免将任何窗口句柄存储为全局句柄。到目前为止,我一直很好。
我现在正在使用键盘挂钩程序,我正在努力寻找,如果有办法的话,把我的主窗口句柄传给它。
如果真的不能用简单的方式完成,我可以让主窗口句柄为全局。
LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam);
有没有一种方法可以将句柄包含在其中一个参数中?
谢谢。
您似乎正在寻找一种将状态对象传递给KeyboardProc
的方法。您可以使用thunk对象,按照此处所述进行操作。这样,KeyboardProc
可以是C++类的非静态成员方法,而不需要全局变量。这有点像黑客,但很方便。ATL库也使用了类似的技术(atlstdthunk.h中的CStdCallThunk
)。由于DEP(数据执行保护)的某些问题,您最好使用thunks的ATL实现。
不,没有。钩子参数是固定的,所有这些参数都由操作系统使用。您必须全局存储句柄。如果你在一个挂接多个进程的DLL中实现挂接过程,你需要将全局存储在共享内存中,这样DLL的每个实例都可以访问它
相关文章:
- 正在查找文档以获得PS4平台的C++中的设备信息
- 递归函数计算序列中的平方和(并输出过程)
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 是否删除在对象构造过程中创建的对象
- 如何设置一个范围来提取我想要获得的信息
- 在源文件中包含额外的调试信息,以便在代码::块中使用gdb进行调试
- 如何在编译过程中输出C 类型信息
- 如何在Boost Serialization ::存档中抑制额外信息
- 在不使用API的情况下,如何在Windows中获取过程信息
- 如何从32位流程中获取可靠的内存使用信息以进行64位过程
- 如何获取有关protobuf解析过程中生成的错误的更多详细信息?(C++)
- 如何使用 SimpleBlobDetector 获取 blob 的额外信息
- 构造std::thread对象过程中的详细信息
- 在比较过程中返回节点信息
- 字符串串联过程中添加的额外字符
- Win32 C++是否可以使用过程发送额外信息
- 使用QT过程,使用命令行从笔记本电脑获取传感器信息
- malloc和heap:用于存储大小和链表信息的额外内存