delphi 全局变量 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 方法!

相关阅读 >>

Delphi读取webbrowse中的图片显示在image中

Delphi xe7 取得进程占用内存的两个函数

Delphi xe5实现android 安卓 左侧或者右侧菜单功能

Delphi 另类计算程序代码运行耗时

Delphi tnethttpclient演示

Delphi firedac 下的 sqlite [10] - 使用 r-tree 搜索

Delphi 循环 low high 用法

dbgrideh 组件在borland开发工具中应用全攻略

Delphi xe2 硬盘序列号

Delphi with do和for do语句

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...