Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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ʱ, ±ØÐëÏÈдºÃÒ»¸ö¾ßÓÐÒÔÏÂÔ­Ð͵ijÌÐò:
¡¡¡¡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 2010 ÆÆ½âµÄ·½·¨[ͨÓÃ]

ÆÆ½â·½·¨¶¼ÊÇÓÃÁ˺Ð×Ó Delphi.Distiller.v1.85
·Ñ»°²»¶à˵
 °²×°ÈÎÒâdelphi 2010 Õýʽ°æ
 ÐòÁкÅÊÇ HAAL-DANSGN-FZR5AG-M3BS
  °²×°ÍêÖ®ºóµã»÷¿ªÊ¼->Embarcadero RAD Studio 2010 ->Check for update
             &nb ......

ÉÏλ»úÍ깤 ——delphi ¸æÒ»¶ÎÂä

ȫͼ

±£´æÊý¾ÝΪtxtÎĵµ

±£´æÎªÍ¼Ïñ

´òÓ¡——pdf´òÓ¡»ú
 
ÏÂÒ»²½ ÓÐʱ¼äµÄ»° ʵÏÖ ±êÇ©Ò³Ãæ   USBת´®¿Ú×Ô¶¯Ê¶±ðÉ豸  //ÖØÐ»ص½STM32ÉÏÃæ-02-26  21:35:21
......

C#ѧϰ¼°ÓëdelphiµÄ±È½Ï£¨¶þ£©

      C#µÄToolTip£¨delphi½ÐHint£©»úÖÆ·Ç³£¹Ö£¬²»ÊÇÏñdelphiµÄÔª¼þÒ»Ñù£¬Ã¿¸öTControlÓÐÒ»¸öHintÊôÐÔ£¬C#ÓÐÒ»¸öToolTipÔª¼þ£¬µ±°ÑÕâ¸öÔª¼þ´Ó¹¤¾ßÏäÀ­µ½formÉϺó£¬Ñ¡ÖÐformÉϵÄÈκÎcontrolÔª¼þ£¬ÔÚÊôÐÔ´°Ì壨Object Inspector£©ÉϾͻá¶à³öÒ»¸öÊôÐÔ“toolTip1ÉϵÄToolTip”£¬Èç¹û¶àÀ­¼¸¸ ......

DELPHI²ÎÊý¼¸¸ö¸ÅÄîÉϵÄÇø±ð

 ÒýÓòÎÊý£º
ÒýÓòÎÊýÓÃvar¹Ø¼ü×Ö±êʾ
procedure DoubleTheValue (var Value: Integer);
begin
Value := Value * 2;
end;
ÔÚÕâÖÖÇé¿öÏ£¬²ÎÊý¼È°ÑÒ»¸öÖµ´«µÝ¸ø¹ý³Ì£¬ÓÖ°ÑÐÂÖµ·µ»Ø¸øµ÷Óùý³ÌµÄ´úÂë¡£µ±ÄãÖ´ÐÐÍêÒÔÏ´úÂëʱ£º
var
X: Integer;
begin
X := 10;
DoubleTheValue (X);
x±äÁ¿µÄÖµ±ä³ÉÁË20 ......

DelphiÔ´³ÌÐò¸ñʽÊéд¹æ·¶

1£¬¹æ·¶¼ò½é
¡¡¡¡±¾¹æ·¶Ö÷Òª¹æ¶¨DelphiÔ´³ÌÐòÔÚÊéд¹ý³ÌÖÐËùÓ¦×ñÑ­µÄ¹æÔò¼°×¢ÒâÊÂÏî¡£±àд¸Ã¹æ·¶µÄÄ¿µÄÊÇʹ¹«Ë¾Èí¼þ¿ª·¢ÈËÔ±µÄÔ´´úÂëÊéдϰ¹ß±£³ÖÒ»Ö¡£ÕâÑù×ö¿ÉÒÔʹÿһ¸ö×éÔ±¶¼¿ÉÒÔÀí½âÆäËü×éÔ±µÄ´úÂ룬ÒÔ±ãÓÚÔ´´úÂëµÄ¶þ´Î¿ª·¢¼ÇÒäϵͳµÄά»¤¡£
2£¬Ò»°ã¸ñʽ¹æ·¶
2.1 Ëõ½ø
¡¡¡¡Ëõ½ø¾ÍÊÇÔÚµ±Ô´³ÌÐòµÄ¼¶¸Ä±äʱΪÔö¼Ó¿É¶Á ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ