g_hWnd=m_hWnd 是什么意思?区别呢?g_hInst和g_hWnd;区别呢,这些变量时系统的还是可以人为定义

wykqhyjs 2010-07-23 02:34:55
下面代码中的g_hWnd=m_hWnd 是什么意思,另外HINSTANCE 和HWND 有什么区别
2.示例程序:
1.新建一基于对话框工程,InnerHook,此过程的钩子是只拦截本进程的。
2.在OnInitDialog()中添加代码:
g_hWnd=m_hWnd;
g_hMouse=SetWindowsHookEx(WH_MOUSE,MouseProc,NULL,GetCurrentThreadId());设置了鼠标钩子
g_hKeyboard=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,NULL,GetCurrentThreadId());设置了键盘钩子
3.完成钩子函数的编写:
HHOOK g_hKeyboard=NULL;
HHOOK g_hMouse;
HWND g_hWnd=NULL;

LRESULT CALLBACK MouseProc(
int nCode, // hook code
WPARAM wParam, // message identifier
LPARAM lParam // mouse coordinates
)
{
return 1;
}
下面代码中的g_hWnd=m_hWnd 是什么意思?什么用处

随便问下
HINSTANCE g_hInst;
HWND g_hWnd;
是经常看见的2个东东,他们分别是什么意思?区别呢?为什么他们的类型不同?一个是HINSTANCE 一个是HWND
另外HINSTANCE 和HWND 有什么区别
好几个问题 谢谢
...全文
375 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Liberty-Bird 2010-07-24
  • 打赏
  • 举报
回复
g_hWnd, g_hMouse,g_hKeyboard这三个变量应该是在类外部声明的全局变量,且在OnInitDialog()函数之前初始化为NULL;OnInitDialog()函数对其初始化赋值,并安装钩子,而后钩子响应函数开始运行。
HINSTANCE 是应用程序实例句柄,HWND 是窗口句柄
宝批龙1892 2010-07-23
  • 打赏
  • 举报
回复
MSDN里面已经讲得很清楚了
wltg2001 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wykqhyjs 的回复:]
引用 2 楼 flyskytoday 的回复:
代码中g_hWnd的定义是这样的:HWND g_hWnd=NULL;
m_hWnd是默认的窗口句柄只要在CWnd类继承的类都有
g_hWnd=m_hWnd就是窗口句柄的赋值

HINSTANCE g_hInst;不清楚

那赋值在逻辑上干嘛用啊
[/Quote]
m_hWnd是CWnd类的成员变量,是CWnd对象相关联的窗口的句柄,你上面的代码应该是一个钩子代码,估计钩子程序在后面要用到这个下钩子的窗口的句柄,所以定义了一个全局变量g_hWnd用来保存这个句柄。
你所说的有什么用,从你的代码上看,g_hWnd应该是一个共享的变量,如果是全局钩子中要向下钩子的窗口发消息的话, 一般就用到这个了。不过,这个用处只是我猜想的,总之,g_hWnd=m_hWnd就是将主对话框的窗口句柄保存下来,方便在别的地方用。
Sou2012 2010-07-23
  • 打赏
  • 举报
回复
Question: HINSTANCE 和HWND 有什么区别
Answer: HINSTANCE 和 HWND都是句柄,但又有不同,
HINSTANCE 是应用程序实例句柄, HWND 是窗口句柄
wykqhyjs 2010-07-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 flyskytoday 的回复:]
代码中g_hWnd的定义是这样的:HWND g_hWnd=NULL;
m_hWnd是默认的窗口句柄只要在CWnd类继承的类都有
g_hWnd=m_hWnd就是窗口句柄的赋值

HINSTANCE g_hInst;不清楚
[/Quote]
那赋值在逻辑上干嘛用啊
flyskytoday 2010-07-23
  • 打赏
  • 举报
回复
查了MSDN
An HINSTANCE to the current instance of the application. If called from within a DLL linked with the USRDLL version of MFC, an HINSTANCE to the DLL is returned.

大概意思就是Dll所返回的句柄
flyskytoday 2010-07-23
  • 打赏
  • 举报
回复
代码中g_hWnd的定义是这样的:HWND g_hWnd=NULL;
m_hWnd是默认的窗口句柄只要在CWnd类继承的类都有
g_hWnd=m_hWnd就是窗口句柄的赋值

HINSTANCE g_hInst;不清楚
wltg2001 2010-07-23
  • 打赏
  • 举报
回复
又开了一帖?你的分可真多。
内容概要:本文详细记录了对一个Android ARM64静态ELF文件中字符串加密机制的逆向分析过程。该ELF文件的所有字符串均被加密,无法通过常规strings命令或IDA直接识别。作者通过分析发现,加密字符串存储在.rodata段,其解密所需信息(包括密文地址、长度和16位密钥)保存在.data.rel.ro段的40字节描述符中。核心解密函数sub_10F408采用自反的双pass流密码算法,结合固定密钥KEY_TERM(由.data段24字节数据计算得出),实现字节级非线性、位置与长度相关的加密。文章还复现了完整的Python解密脚本,并揭示了该保护机制的本质为代码混淆而非强加密,最终成功批量解密全部956条字符串,暴露程序真实行为,如shell命令模板、设备标识篡改、网络重置等操作。此外,文中还提及未启用的自定义壳框架及其反dump设计。; 适合人群:具备逆向工程基础的安全研究人员、二进制分析人员及对ELF保护技术感兴趣的开发者。; 使用场景及目标:①学习ELF二进制中字符串加密的典型实现方式与逆向突破口;②掌握从结构识别、函数追踪到算法还原的完整逆向流程;③理解“绑定二进制”的完整性校验设计及其局限性;④实践编写IDAPython脚本自动化提取与解密敏感数据。; 阅读建议:此资源以实战案例驱动,不仅展示技术细节,更强调逆向思维与验证方法,建议读者结合IDA调试环境,逐步跟随文中步骤进行动态分析与算法验证,深入理解每一步的推理依据。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧