易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi中DLL初始化和退出处理


<1>利用Unit的
Initalization与Finalization这两个小节
  可以在Unit的这两个小节中安排Unit的进入和退出,但是
Program

Library并没有这两个部分,所以只能写在Unit中。
<2>利用ExitProc变量
  在Library的begin
..end.中间是可以写代码
的,
这里可以放置
DLL初始化代码
。如果想要做善后工作,则可以利用ExitProc变量。
我们首先在初始化代码

把ExitProc中包含的默认的善后过程地址保
存下来,然后把自定义的过程的地址赋给它,这样DLL退出时就会执
行我们制定的程序;在
自定义的过程的最后,把ExitProc恢复原来的
默认值,以便DLL能够继续完成原来默认的善后工作。下面是示例:
  library
MyDLL;
  ...
  OldExitProc: pointer;
  ...
  procedure
MyExitProc;
  begin
  ... //善后程序
  ExitProc :=
OldExitProc;
  end;
  ...
  begin
  ... //初始化程序
 
 OldExitProc := ExitProc;
  ExitProc := @MyExitProc;
  end.
<3>利用DllProc变量
  和ExitProc一样,DllProc也是一个在Systemd单元中预定义的变
量。
在使用DLLProc时, 必须先写好一个具有以下原型的程序:
  procedure

DLLHandler(Reason: integer);
并在library的begin
..end.之间,
将这个DLLHandler程序的执行地
址赋给DLLProc中, 这时就可以根据参数Reason的值分别作出相应的
处理。另外注意要
将Windows单元加入uses子句。示例如下:
  library TestDLL;
  ...
procedure
MyDLLHandler(Reason: integer);
begin
case Reason of
   
DLL_PROCESS_DETACH:
      begin
       
ShowMessage('整个DLL的善後程序');
      end;
    DLL_Process_Attach:
     
begin
       
ShowMessage('整个DLL的初始化代码
');
      end;
    DLL_Thread_Attach:
      begin
       
ShowMessage('当主叫端开始一个Thread时');
      end;
    DLL_Thread_Detach:
   &n


相关文档:

用Delphi编程时 如何利用线程

============================================================================
Windows95是Microsoft公司的第一个真正的多任务操作系统。在每一时刻可以有多个进程同时工作,而每一个进程又包含有多个线程。但只有一个处理器的计算机不可能真正地“同时”执行多个线程,而是操作系统把时间分成若干个时间片, ......

DELPHI中的快捷方式一览(完全正式版)

 
 1.SHIFT+鼠标左键    先选中任一控件,按键后可选中窗体(选中控件后按Esc效果一样)
 2.Shift+F8          调试时弹出CPU窗口。
 3.Shift+F10         等于鼠标右键(Windows快捷键)。
&n ......

delphi键盘按键伪码

Delphi键盘按键伪码
用法:if key = chr(VK_RETURN) then...
常数名称 十六进制值 十进制值 对应按键
VK_LBUTTON 01 1 鼠标的左键
VK_RBUTTON 02 2 鼠标的右键
VK-CANCEL 03 3 Contol-break 执行
VK_MBUTTON 04 4 鼠标的中键(三按键鼠标)
VK_BACK 08 8 Backspace键
VK_TAB 09 9 Tab键
VK_CLEAR 0C 12 Clear键
VK ......

Delphi源程序格式书写规范

1,规范简介
  本规范主要规定Delphi源程序在书写过程中所应遵循的规则及注意事项。编写该规范的目的是使公司软件开发人员的源代码书写习惯保持一致。这样做可以使每一个组员都可以理解其它组员的代码,以便于源代码的二次开发记忆系统的维护。
2,一般格式规范
2.1 缩进
  缩进就是在当源程序的级改变时为增加可读 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号