DELPHIµÄÖ¸Õë
´ó¼Ò¶¼ÈÏΪ£¬CÓïÑÔÖ®ËùÒÔÇ¿´ó£¬ÒÔ¼°Æä×ÔÓÉÐÔ£¬ºÜ´ó²¿·ÖÌåÏÖÔÚÆäÁé»îµÄÖ¸ÕëÔËÓÃÉÏ¡£Òò´Ë£¬ËµÖ¸ÕëÊÇCÓïÑÔµÄÁé»ê£¬Ò»µã¶¼²»Îª¹ý¡£Í¬Ê±£¬ÕâÖÖ˵·¨Ò²ÈúܶàÈ˲úÉúÎó½â£¬ËƺõÖ»ÓÐCÓïÑÔµÄÖ¸Õë²ÅÄÜËãÖ¸Õë¡£Basic²»Ö§³ÖÖ¸Õ룬Ôڴ˲»ÂÛ¡£Æäʵ£¬PascalÓïÑÔ±¾ÉíÒ²ÊÇÖ§³ÖÖ¸ÕëµÄ¡£´Ó×î³õµÄPascal·¢Õ¹ÖÁ½ñµÄObject Pascal£¬¿ÉÒÔ˵ÔÚÖ¸ÕëÔËÓÃÉÏ£¬Ë¿ºÁ²»»áÑ·É«ÓÚCÓïÑÔµÄÖ¸Õë¡£
ÒÔÏÂÄÚÈÝ·ÖΪ°Ë¸ö²¿·Ö£¬·Ö±ðÊÇ
Ò»¡¢ÀàÐÍÖ¸ÕëµÄ¶¨Òå
¶þ¡¢ÎÞÀàÐÍÖ¸ÕëµÄ¶¨Òå
Èý¡¢Ö¸ÕëµÄ½â³ýÒýÓÃ
ËÄ¡¢È¡µØÖ·£¨Ö¸Õ븳ֵ£©
Îå¡¢Ö¸ÕëÔËËã
Áù¡¢¶¯Ì¬ÄÚ´æ·ÖÅä
Æß¡¢×Ö·ûÊý×éµÄÔËËã
°Ë¡¢º¯ÊýÖ¸Õë
Ò»¡¢ÀàÐÍÖ¸ÕëµÄ¶¨Òå¡£¶ÔÓÚÖ¸ÏòÌØ¶¨ÀàÐ͵ÄÖ¸Õ룬ÔÚCÖÐÊÇÕâÑù¶¨ÒåµÄ£º
int *ptr;
char *ptr;
ÓëÖ®µÈ¼ÛµÄObject PascalÊÇÈçºÎ¶¨ÒåµÄÄØ£¿
var
ptr : ^Integer;
ptr : ^char;
ÆäʵҲ¾ÍÊÇ·ûºÅµÄ²î±ð¶øÒÑ¡£
¶þ¡¢ÎÞÀàÐÍÖ¸ÕëµÄ¶¨Òå¡£CÖÐÓÐvoid *ÀàÐÍ£¬Ò²¾ÍÊÇ¿ÉÒÔÖ¸ÏòÈκÎÀàÐÍÊý¾ÝµÄÖ¸Õë¡£Object PascalΪÆä¶¨ÒåÁËÒ»¸öרÃŵÄÀàÐÍ£ºPointer¡£ÓÚÊÇ£¬
ptr : Pointer;
¾ÍÓëCÖеÄ
void *ptr;
µÈ¼ÛÁË¡£
Èý¡¢Ö¸ÕëµÄ½â³ýÒýÓá£Òª½â³ýÖ¸ÕëÒýÓ㨼´È¡³öÖ¸ÕëËùÖ¸ÇøÓòµÄÖµ£©£¬C µÄÓï·¨ÊÇ (*ptr)£¬Object PascalÔòÊÇ ptr^¡£
ËÄ¡¢È¡µØÖ·£¨Ö¸Õ븳ֵ£©¡£È¡Ä³¶ÔÏóµÄµØÖ·²¢½«Æä¸³Öµ¸øÖ¸Õë±äÁ¿£¬C µÄÓï·¨ÊÇ
ptr = &Object;
Object Pascal ÔòÊÇ
ptr := @Object;
Ò²Ö»ÊÇ·ûºÅµÄ²î±ð¶øÒÑ¡£
Îå¡¢Ö¸ÕëÔËËã¡£ÔÚCÖУ¬¿ÉÒÔ¶ÔÖ¸Õë½øÐÐÒÆ¶¯µÄÔËË㣬È磺
char a[20];
char *ptr=a;
ptr++;
ptr+=2;
µ±Ö´ÐÐptr++;ʱ£¬±àÒëÆ÷»á²úÉúÈÃptrǰ½øsizeof(char)²½³¤µÄ´úÂ룬֮ºó£¬ptr½«Ö¸Ïòa[1]¡£ptr+=2;Õâ¾äʹµÃptrǰ½øÁ½¸ösizeof(char)´óСµÄ²½³¤¡£Í¬Ñù£¬ÎÒÃÇÀ´¿´Ò»ÏÂObject PascalÖÐÈçºÎʵÏÖ£º
var
a : array [1..20] of Char;
ptr : PChar; //PChar ¿ÉÒÔ¿´×÷ ^Char
begin
ptr := @a;
Inc(ptr); // Õâ¾äµÈ¼ÛÓÚ C µÄ ptr++;
Inc(ptr, 2); //Õâ¾äµÈ¼ÛÓÚ C µÄ ptr+=2;
end;
Áù¡¢¶¯Ì¬ÄÚ´æ·ÖÅä¡£CÖУ¬Ê¹ÓÃmalloc()¿âº¯Êý·ÖÅäÄڴ棬free()º¯ÊýÊÍ·ÅÄÚ´æ¡£ÈçÕâÑùµÄ´úÂ룺
int *ptr, *ptr2;
int i;
ptr = (int*) malloc(sizeof(int) * 20);
ptr2 = ptr;
for (i=0; i<20; i++){
*ptr = i;
ptr++;
}
free(ptr2);
Object PascalÖУ¬¶¯Ì¬·ÖÅäÄÚ´æµÄº¯ÊýÊÇGetMem()£¬ÓëÖ®¶ÔÓ¦µÄÊͷź¯ÊýΪFreeMem()£¨´«Í³PascalÖлñÈ¡ÄÚ´æµÄº¯ÊýÊÇNew()ºÍ Dispose()£¬µ«New()Ö»ÄÜ»ñµÃ¶ÔÏóµÄµ¥¸öʵÌåµÄÄÚ´æ´óС£¬ÎÞ·¨È¡µÃÁ¬ÐøµÄ
Ïà¹ØÎĵµ£º
Ä£°å·½·¨Ä£Ê½¶¨ÒåÁËÒ»¸öËã·¨¹Ç¼Ü£¬ÔÊÐí×ÓÀà¶ÔËã·¨µÄij¸ö»òijЩ²½Öè½øÐÐÖØÐ´£¨override)¡£
1.CoffeineBeverageWithHook
{¡¶HeadFirstÉè¼ÆÄ£Ê½¡·Ö®Ä£°å·½·¨Ä£Ê½ }
{ ±àÒ빤¾ß: Delphi7.0 }
{ E-Mail : xshlife@163.com }
unit uCoffeineBeverageWithHook;
interface
uses
SysUti ......
Delphi TIniFile Àà ²Ù×÷iniÅäÖÃÎļþ
2007Äê12ÔÂ08ÈÕ ÐÇÆÚÁù 09:56
Ò»¡¢ÓбØÒªÁ˽âINIÎļþµÄ½á¹¹£º
;×¢ÊÍ
[С½ÚÃû]
¹Ø¼ü×Ö=Öµ
...
---- INIÎļþÔÊÐíÓжà¸öС½Ú£¬Ã¿¸öС½ÚÓÖÔÊÐíÓжà¸ö¹Ø¼ü×Ö£¬ “=”ºóÃæÊǸùؼü×ÖµÄÖµ¡£
---- ÖµµÄÀàÐÍÓÐÈýÖÖ£º×Ö·û´®¡¢ÕûÐÍÊýÖµºÍ²¼¶ûÖµ¡£ÆäÖÐ×Ö·û´®´æÖüÔÚINIÎļþÖÐÊ±Ã»Ó ......
ÃüÁîģʽ¿ÉÒÔºÜÇáËɵÄʵÏÖ³·Ïú£¨Undo£©¹¦ÄÜ¡£
1. ÃüÁîµÄ½ÓÊÜÕß
unit uReceiveObject;
interface
type
TLight = class(TObject)
public
procedure Open;
procedure Off;
end;
implementation
{ TLight }
procedure TLight.Off;
begin
Writeln('Light is off.');
......
ÔÚÖ÷½çÃæµÄimplementation {$R *.dfm} Ï·ÅÈëÒÔÏ´úÂ룺
procedure PatchInt3;
var
NOP: Byte;
NTDLL: THandle;
BytesWritten: DWORD;
Address: Pointer;
begin
if Win32Platform <> VER_PLATFORM_WIN32_NT then
Exit;
NTDLL := GetModuleHandle('NTDLL.DLL');
if NT ......