Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

DelphiÖÐDLL³õʼ»¯ºÍÍ˳ö´¦Àí

DelphiÖÐDLL³õʼ»¯ºÍÍ˳ö´¦Àí
choysan
2010-01-08 8:56:43
<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:
   


Ïà¹ØÎĵµ£º

Delphi ÀàÓë¶ÔÏóÄÚ´æ½á¹¹Ç³Îö(ÉÏ)


²Î¿¼×ÊÁÏ
ÀîÕ½.¡¶Îò͸delphi¡·£¬µÚ1Õ“DELPHIµÄÔ­×ÓÊÀ½ç”
 “̽Ë÷DelphiÀàÓë¶ÔÏóµÄÄÚ´æ½á¹¹”
»ù±¾ÖªÊ¶
¶¯Ì¬ÄÚ´æÓ뾲̬ÄÚ´æ
µ±³ÌÐòÔËÐÐʱ£¬ÏµÍ³Ê×ÏȽ«ËùÓÐÊý¾Ý×°ÔØÈëÄڴ棬Íê³É³õʼ»¯£¬È»ºó´ÓÈë¿ÚµØÖ·¿ªÊ¼Ö´ÐдúÂë¡£
³ÌÐò×°ÔØºó¼´´æÔÚÓÚÄÚ´æ¿Õ¼äÖеÄÊý¾ÝÎÒÃdzÆÖ®Îª¾²Ì¬Äڴ棬ÔËÐйý³ÌÖÐ ......

delphi Ñ¡ÔñÎļþ¼Ð


function BrowseCallbackProc(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): Integer; stdcall;
begin
if uMsg = BFFM_INITIALIZED then
begin
SendMessage(Wnd, BFFM_SETSELECTION, 1, lpData);
SetWindowText(Wnd, 'Ñ¡ÔñÒ»¸öÄ¿±ê');
end;
Result := 0;
end;
//hdl: ´°¿Ú¾ä±ú
//Root: ¸ùÄ ......

Delphi Öн«¶ÔÏó×÷Ϊ²ÎÊý´«µÝµÄʹÓÃ

Delphi Öн«¶ÔÏó×÷Ϊ²ÎÊý´«µÝµÄʹÓà ¾ÙÀý·ÖÎö
2009-07-24 13:40
 
ÏÂÃæµÄµ¥»÷ʼþ£¬½«Òªµ÷ÓÃÒ»¸öÒÔ¶ÔÏóΪ²ÎÊýµÄ·½·¨£¬²¢½«½á¹ûÏÔʾ³öÀ´¡£
procedure TForm1.btn1Click(Sender: TObject);
var
lStrings: TStrings;
begin
lStrings:= TStringList.Create;
try
    lStrings.Add('chen');
&nbs ......

Delphi¿ØÖÆExcel2000ÐĵÃ

(Ò») ʹÓö¯Ì¬´´½¨µÄ·½·¨
Ê×ÏÈ´´½¨ Excel ¶ÔÏó£¬Ê¹ÓÃComObj:
var ExcelApp: Variant;
ExcelApp := CreateOleObject( 'Excel.Application' );
1) ÏÔʾµ±Ç°´°¿Ú£º
ExcelApp.Visible := True;
2) ¸ü¸Ä Excel ±êÌâÀ¸£º
ExcelApp.Caption := 'Ó¦ÓóÌÐòµ÷Óà Microsoft Excel';
3) Ìí¼Óй¤×÷²¾£º
ExcelApp.WorkBooks.Add ......

DelphiʹÓÃiniÅäÖÃÎļþÁ¬½ÓMS SQLÊý¾Ý¿â

ºÜÔç×ö¹ýµÄÒ»¸ödelphiÏîÄ¿£¬°ÑÀïÃæÓõ½µÄ¼¼Êõ×ܽáһϣ¬Ö÷ÒªÊÇÕë¶ÔÏóÎÒÕâÑùµÄdelphiÐÂÊÖ£¬¼¼ÊõÉÏ×ö¸ö»ýÀÛ°É£¡
¼ÙÉèÎÒÃǵÄÊý¾Ý¿âÅäÖÃÎļþServerInfo.iniÄÚÈÝÈçÏ£º
[ServerInfo]  
ServerIP=192.168.1.5
SQLDBName=Data 
SQLUserID=sa  
SQLPwd=  
ÎÒÃǶ¨ÒåÒ»¸öÁ¬½ÓÊý¾Ý¿âµÄ¹ý ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ