¹ØÓÚDelphiÖÐDLL·â×°¶ÔÏóµÄ¼¸ÖÖ·½·¨ÕûÀí¼°Ìå»á
ÔÎIJμû£º http://blog.csdn.net/ingener/archive/2007/12/22/1958535.aspx
¹ØÓÚDelphiÖÐDLL·â×°¶ÔÏóµÄ¼¸ÖÖ·½·¨ÕûÀí¼°Ìå»á
DelphiÓÃDLLÀ´·â×°¶ÔÏóµÄ¼¼ÊõÖ÷ÒªÓÐÈýÖÖ:
ÓýӿÚʵÏÖ
Óô¿ÐéºÍ³éÏóÀà·½·¨ÊµÏÖ
ÓÃÀàÒýÓÃʵÏÖ
ǰÁ½ÖÖ£¬¶¼ÊÇÔÚDLLÖÐÉú³ÉÀàʵÀý£»µÚ3ÖÖͨ¹ýÔÚµ÷Ó÷½Éú³ÉʵÀý¡£ÈýÖÖ·½·¨µÄ¹²Í¬¾ÖÏÞÈçÏ£º
µ÷Ó÷½Ö»Äܵ÷Ó÷â×°ÀàÖеÄvirtual·½·¨£»
µ÷Ó÷½ºÍÌṩ·½¶¼±ØÐëÌṩÀàµÄÃèÊö£¬½Ó¿ÚʵÏÖÖÐÐèÒªÌṩ½Ó¿ÚÃèÊö£¨COM·½·¨ÀýÍ⣩£»
²»ÄÜ´´½¨DLL°üº¬¶ÔÏóµÄÅÉÉúÀࣨ½Ó¿ÚÅÉÉú³ýÍ⣩¡£
Ê×ÏÈ£¬ÓýӿÚʵÏÖµ±È»°üÀ¨COMʵÏÖ£¬²»¹ýÓÉÓÚCOMÊÇÒ»ÖÖʵÏÖ½Ó¿Ú¼¼ÊõµÄ¶ÀÁ¢ÃÅÀ࣬ËùÒÔÔÚÏÂÃæËµµÄ½Ó¿ÚʵÏÖÖв»°üÀ¨Õâ·½ÃæµÄ¶«Î÷¡£Æä´ÎÓô¿ÐéºÍ³éÏóÀà·½·¨ÊµÏÖ£¬ÔÚ¡¶Delphi 6 Developer‘s Guide¡·ÖÐÌá¼°µÄincÎļþ×÷Ϊ¹«ÓõÄÍ·Îļþ£¬ºÍÁõÒÕÔÚ¡¶DelphiÃæÏò¶ÔÏó±à³Ì˼Ïë¡·ÖÐÌá¼°µÄ·½·¨±¾ÖÊÉÏÊÇÒ»ÑùµÄ¡£Î޷Ƕ¼ÊÇΪÁËÔÚµ÷Ó÷½¼ÓÈëabstract¹Ø¼ü×Ö£¬¶øÎÞÐè·½·¨ÊµÏÖ£¬´Ó¶øÊ¹µÃ±àÒëͨ¹ý¡£incÎļþµÄ·½·¨ÊÇÀûÓúêÖ¸ÁîÀ´´ïµ½Í³Ò»´¦Àí£¬²»ÓÃinc·½·¨ÊÇÔÚÁ½´¦¶¼ÐèÒª½øÐÐÃèÊö¡£
ÏÂÃæÓÃÒ»¸öÀý×ÓÀ´Õ¹Ê¾ËùÒÔÉÏÃæÌáµ½µÄ¼¯Öз½·¨¡£
µ÷Ó÷½Ö÷ÒªÎļþÁбíΪ£º
UnitMain.pas µ÷ÓÃDLLµÄ½çÃæ
UnitPublic.pas µÚ¶þÖÖ·½·¨ÔÚµ÷Óö˵ÄÀàÃèÊöÎļþ
UnitIDest.pas ½Ó¿Ú·½·¨ºÍÀàÒýÓ÷½·¨µÄÀàÃèÊöÎļþ
IncDemo.inc ÀûÓÃincÎļþʵÏÖµÄÀàÃèÊöÎļþ
DLL¹¤³ÌÖ÷ÒªÎļþÁбíΪ£º
ProDLLDemo.dpr DLL¹¤³ÌÎļþ
UnitDLLDemo.pas ËùÓÐÀàʵÏÖ²¿·ÖµÄÎļþ
UnitIDest.pas ½Ó¿Ú·½·¨ºÍÀàÒýÓ÷½·¨µÄÀàÃèÊöÎļþ
IncDemo.inc ÀûÓÃincÎļþʵÏÖµÄÀàÃèÊöÎļþ
ÔÚ·½·¨µÄ¹éÄÉÉÏÈçÓÐÒÅ©£¬ÓÐÇëÖ¸½Ì¡£
UnitMain.pas Ô´´úÂ룺
unit UnitMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, UnitPublic, UnitIDest;
{$I IncDemo.inc}
// ÓÃÓÚInc·½·¨µÄºêÖ¸ÁÈç¹û²»ÊÇÓø÷½·¨¿ÉÈ¥µôÉÏÃæÄÇÐÐ
type
TfmMain = class(TForm)
Memo1: TMemo;
btnUseAbstract: TButton;
btnUseReference: TButton;
btnUseInterface: TButton;
btnUseInc: TButton;
procedure btnUseAbstractClick(Sender: TObject);
proce
Ïà¹ØÎĵµ£º
delphi ×¢²á com ¶ÔÏóµÄ·½·¨
procedure TForm1.Button3Click(Sender: TObject);
var
Sd: TSecurityDescriptor;
begin
InitializeSecurityDescriptor(@Sd, SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(@Sd, true, Nil, false);
RegSe ......
´ËÎÄÊǸù¾Ý°éË®ÀÏ´óµÄʵÀý×öµÄСÐ޸ģ¡
ÒÔÏÂÊǸöÈ˼û½â£¬ÈçÓдíÎóÇëÖ¸Õý:)
ÒªÏë¿ç½ø³Ì·ÃÎÊDBGRID£¬Ã²ËÆÖ»ÄÜÓÃHOOK£¬Ð´Ò»¸öDLLÏë°ì·¨×¢È뵽Ŀ±ê½ø³Ì¡£×¢Èë³É¹¦ºó£¬Ê¹DLLÓëÄ¿±ê½ø³ÌÔÚͬһ½ø³Ì¿Õ¼äÖÐ(ÆäÄÚÓÐһЩϸ½ÚÎÊÌ⣬Çë²Î¼û´úÂë)£¬Õâʱ¿ÉÒÔ·ÃÎÊÄ¿±ê½ø³ÌµÄVCL×é¼þ¡£²¢°ÑVCL×é¼þµÄÊý¾Ýͨ¹ ......
#13»Ø³µ»»ÐÐ
½«form2ÄÚÈݼÓÈëµ½form1Áбí¿ò£ºÔÚform2Àform1.listbox1.items.add(edit1.text)
listbox1.items.loadfromfile('chinese.txt')½«chinese.txtÎļþÄÚÈÝÔØÈëÁбí¿òÖС£µ«Ç°ÌáÊÇÒªÕû¸ö´°Ìå´´½¨Ê±ºò¼ÓÔØµ¼È룬˫»÷Õû¸ö´°Ìåprocedure TForm1.FormCreate(Sender: TObject)
listbox1.items.savetofile('chinese. ......
ºÜÆæ¹Ö£¬×òÌìÔÚ±àÒë³ÌÐòµÄʱºò£¬³öÏÖ¹ý£¬iphist.dat Îļþ¡£Ã¿´ÎÖ´Ðж¼³öÏÖ£¬×Ðϸ²é¿´´úÂ룬ʲôҲûÓа¡£¡ºóÀ´ÔÚÍøÕ¾ÕÒµ½ÔÒò£º
ʹÓÃÁËIPWatch ¿Ø¼þµÄ
Ò»°ã²úÉúÕâ¸öÎļþÊÇÒòΪʹÓÃÁËindyµÄ TIdIPWatch ¿Ø¼þ
¸Ã¿Ø¼þÓиö
ipÀúÊ·µÄ¹¦ÄÜ¡£
historyfilenameÖ¸¶¨µÄÊDZ£´æipÀúÊ·¼Ç¼µÄÎļþÃû£¬Ä¬ÈÏÊÇiphist.Dat
......
DelphiÖÐFormat×Ö·û´®ËµÃ÷
function Format(const Format: string; const Args: array of const):
string;
Format×Ö·û´®ËµÃ÷£º
"%" [index ":"] ["-"] [width] ["." prec] type
(1)
¸ñʽ»¯×Ö·û´®±ØÐëÒÔ%¿ªÍ·
(2) [index ":"]
Ë÷ÒýÖ¸µÄÊÇArgs²ÎÊýÁбíÖÐÒªÏÔʾµÄÿһÏîµÄÐòºÅ¡£±ÈÈ磺ArgsÊÇ
......