Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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ÖеÄRecord


ÔÚDelphiÖеÄRecordÀàÐÍÖУ¬ÓëÖ®CÓïÑÔ¶ÔÓ¦µÄ¼´ÊǽṹÌåÀàÐÍ£¨struct
£©£¬Ò²¿ÉÄÜÊÇΪÁË·ûºÏCÓïÑÔ»òC++³ÌÐòÔ±µÄϰ¹ß£¬¶ÔÓÚËüÔÚDelphiÖеÄÓ¦ÓôæÔÚµÄһЩÎÊÌâ½øÐгõ²½µÄ˵Ã÷¡£ÔÚDelphiÖеļǼÌåÀàÐÍÓÐÁ½ÖÖ·½Ê½¶¨Òå
Type
    RecTest = record (packed
)
      ID :integer; ......

delphi 動態°²裝·þ務


unit winntService;
interface
uses
Windows,WinSvc,WinSvcEx;
function InstallService(const strServiceName,strDisplayName,strDescription,strFilename: string):Boolean;
procedure UninstallService(strServiceName:string);
implementation
function StrLCopy(Dest: PChar; const Source: PChar; MaxLen: C ......

Delphi ÀàµÄѧϰ

Ò»¡¢ÀàÓë¶ÔÏó
1¡¢  Àà(Class)ÊÇÓû§¶¨ÒåµÄÊý¾ÝÀàÐÍ
2¡¢  ¶ÔÏó£¨Object£©ÊÇÀà(Class)µÄÒ»¸öʵÀý£¬»òÓÉÀඨÒåÊý¾ÝÀàÐ͵ÄÒ»¸ö±äÁ¿;
3¡¢  ÀàÓÐÒ»ÖÖ״̬£¨ÄÚ²¿Êý¾Ý£©£¬²Ù×÷£¨ÐÐΪ»ò·½·¨£©£¬ÊôÐÔ;
4¡¢  ¶ÔÏóÊÇÒ»¸öʵÌ壬³ÌÐòÔËÐÐʱ»áΪÆäÄÚ²¿±íÏÖ·ÖÅäһЩÄÚ´æ;
5¡¢  ÀàÓë¶ÔÏóÖ®¼äµÄ¹ØÏµºÍ±äÁ¿ÓëÀàÐ ......

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 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ