全局变量 HInstance 到底是在什么时候赋值的?
作者:互联网
全局变量 HInstance 到底是在什么时候赋值的?
在学习 资源文件 和 钩子函数 时, 经常用到当前模块句柄(HInstance)这个全局变量. 今天特别想知道, 它到底是在什么时候给赋值的.输入 HInstance; "Ctrl+鼠标" 找到它的声明之处: SysInit 单元的第 29 行(Delphi 2007) - HInstance: LongWord;
看来 Delphi 的隐含单元不只是 System.pas, 还有 SysInit.pas.
在 SysInit 单元的 658 行找到了它的赋值语句: HInstance := GetModuleHandle(nil);
是在一个 _InitExe 的过程中.
那程序又是在什么时候执行的 _InitExe 方法呢?
用 F7 逐句调试...找不到!
勾选 Project -> Options -> Compiler -> Use debug DCUs 后, 重新用 F7 逐句调试, 找到了:
原来程序在执行 Application.Initialize; 之前就来到 SysInit 单元执行了 _InitExe 方法!
posted on 2008-04-01 14:04 万一 阅读(6014) 评论(2) 编辑 收藏
标签:InitExe,SysInit,HInstance,全局变量,单元,赋值 来源: https://blog.51cto.com/u_14617575/2747630