delphiÖеö·ûºÅ@¡¢^¡¢$
@·ûºÅ·µ»ØÒ»¸ö±äÁ¿µÄµØÖ·
Àý£º
var
f:string;
p:^string; //ÉùÃ÷Ò»¸ö×Ö·û´®ÀàÐ͵ÄÖ¸Õë
begin
f ='demo';
p = @f;
showmessage(p^);//ÏÔʾ½á¹ûΪ‘demo’
end;
^·ûºÅÔÚdelphiÖдú±íÖ¸ÕëµÄÒâ˼.
$ÊDZàÒëÖ¸Á¾ßÌåÓ÷¨¼ûÏÂÎÄ£®
Delphi±àÒëÖ¸Áî˵Ã÷
Delphi¿ìËÙ¸ßЧµÄ±àÒëÆ÷Ö÷ÒªÀ´×ÔObject PASCALµÄÑϽ÷£¬Ê¹ÓÃDelphiËæÊ±¶¼ÔÚÓë±àÒëÆ÷½»Á÷£¬´ó²¿·ÖÇé¿öϲ»ÐèÒª¸ÉÉæ±àÒëÆ÷µÄÔËÐУ¬µ«ÊÇÓÐʱҲÐèÒª¶Ô±àÒëÆ÷½øÐбØÒªµÄÉèÖá£
A.1 ʹÓñàÒëÉèÖöԻ°¿ò
±àÒëÆ÷µÄ±àÒëÖ¸ÁîÊÇÓÃÓÚÖ¸¶¨±àÒëÆ÷¶ÔÏîÄ¿±àÒë¹ý³ÌµÄ¶¯×÷ºÍÐÐΪ¡£¿ÉÒÔͨ¹ý[Project]->[Options]->[Complier]Ñ¡ÏîÒ³½øÐÐÉèÖ㬾ø´ó²¿·ÖµÄ±àÒë»·¾³¶¼¿ÉÒÔͨ¹ýÕâÒ»¶Ô»°¿ò½øÐе÷Õû£¬Ëû°üº¬Á˶ԴúÂë¡¢Óï·¨¡¢µ÷ÊÔÐÅÏ¢µÈµÄÉèÖá£
1.´úÂëÉèÖÃ(Code Generation)
Optimization: ´úÂëÓÅ»¯¿ª¹Ø
Aligned record fields: ×Ö¶ÔÆëÊý¾Ý¡£Õâ¸ö±àÒëÖ¸ÁîÄܹ»ÔÚ±äÁ¿ºÍÀàÐÍ»¯³£Á¿µÄ×Ö½Ú¶ÔÆëºÍ×Ö¶ÔÆëÖ®¼ä½øÐÐÇл»£¬Æä×÷ÓÃÊÇÈ«¾ÖµÄ¡£
Stack frames: Windows ¶ÑÕ»Ö¡¡£Æä×÷ÓÃÓòÊǾֲ¿µÄ£¬Ëûʹ±àÒëÆ÷³ÉΪԶ¶Ë¹ý³ÌºÍº¯ÊýÉú³ÉÌØ¶¨µÄ¿ªÍ·ºÍ½áβ´úÂë¡£Õâ¸öÖ¸ÁîÓÃÓÚWindows 3.0µÄʵģʽ£¬¶ÔËùÓÐDelphiÓ¦ÓóÌÐòËûÓ¦¸ÃÊǹرյġ£
Pentium-safe FDIV: Pentium°²È«FDIV¼ì²é¡£´ËÖ¸ÁîÄܹ»ÔÚPentium´¦ÀíÆ÷ÖÐÖ¸¶¨±àÒëÆ÷ÊÇ·ñ´´½¨Äܹ»¼ì²âºÍʹÓÃÓÐȱÏݵĸ¡µã³ý·¨Ö¸ÁîµÄ´úÂë¡£
2.ÔËÐÐÆÚ´íÎó(Runtime Errors)
Range Checking: ·¶Î§¼ì²é¡£Õâ¸öÖ¸ÁîµÄ×÷Ó÷¶Î§ÊǾֲ¿µÄ£¬ÓÃÓÚ¿ØÖÆ·¶Î§¼ìÑé´úÂëµÄÉú³É¡£
I/O Checking: I/O¼ì²é¡£Õâ¸öÖ¸ÁîµÄ×÷ÓÃÓòΪ¾Ö²¿£¬ÓÃÀ´Éú³É¶ÔÒ»¸öÎļþµÄÊäÈëºÍÊä³ö¹ý³ÌºÍµ÷Óýá¹û½øÐмì²éµÄ´úÂë¡£Ò»°ãÓ¦¸ÃʹÆä¹¦ÄÜ´ò¿ª¡£
Overflow Checking: Òç³ö¼ì²é¡£Æä×÷ÓÃÊÇÉú³É¶ÔËãÊõÒç³ö¼ì²éµÄ´úÂë¡£
3.Óï·¨ÉèÖÃ(Syntax Optings)
Strict Var- strings: ¾²Ì¬±äÁ¿´®¿ª¹Ø¡£ÓÃÀ´¿ØÖƶÔÒÔ±äÁ¿²ÎÊýÐÎʽ´«µÝµÄ´®µÄÀàÐͼì²é¡£
Comlete Boolean Eval: ÍêÈ«²¼¶û±í´ïÁ¿Åж¨¡£ÓÃÓÚÖ´ÐÐÇ¿ÖÆµÄÍêÕû±í´ïʽÅж¨¡£ÍêÈ«²¼¶ûÁ¿Åж¨£¬ÓпÉÄܵ¼ÖÂϵͳ±ÀÀ££¬ËùÒÔÒ»°ã²»Ê¹ÓÃËû¡
Ïà¹ØÎĵµ£º
ÊÊÅäÆ÷ģʽµÄÖ÷ÒªÒâͼÊǶÔÏÖÓÐÀàµÄ½Ó¿Ú½øÐÐת»»£¬ÒÔÂú×ãÄ¿±êÀàµÄÐèÇ󡣯ä´Î£¬¿ÉÒÔ¸øÄ¿±êÀàµÄ½Ó¿ÚÌí¼ÓеÄÐÐΪ£¨Ö÷ÒªÖ¸·½·¨£©¡£ÕâÒ»µãÈÝÒ×Óë×°ÊÎģʽ»ìÏý¡£´ÓÒâͼ·½ÃæÀ´¿´£¬×°ÊÎģʽ²»¸Ä±ä£¨Í¨³£Ö¸Ôö¼Ó£©½Ó¿ÚÖеÄÐÐΪ£¨Ö÷ÒªÖ¸·½·¨£©£¬¶øÊÇÔÚÔÓÐÐÐΪ£¨Ö÷ÒªÖ¸·½·¨£©µÄ»ù´¡ÉÏÌí¼ÓÐµĹ¦ÄÜ£»´ÓÀà½á¹¹· ......
ÔÚÖ÷½çÃæµÄ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 ......
ÔÚDelphiÖÐʹÓÃRASʵÏÖ¶Ôϵͳ²¦ºÅµÄ¿ØÖÆ
ÔÚÆóÒµÓ¦ÓÃÖÐÓÐʱºòÏ£ÍûÄÜÔÚ³ÌÐòÖÐʵÏÖ¶Ô²¦ºÅÍøÂçµÄ¿ØÖÆ£¬ÒÔʵÏÖ×Ô¶¯²¦ºÅ¡¢×Ô¶¯¶Ï¿ªÍøÂç¡£ÔÚ³¢ÊÔÁ˶àÖÖ·½Ê½Ö®ºó£¬ÈÏΪRASÊÇÒ»ÖֱȽÏÎȶ¨µÄ·½Ê½¡£ÔÚgoogleÁËÍøÉÏһЩ×ÊÁϺó£¬ÏÖÕûÀíÈçÏ£º
Ò»¡¢Ê×ÏÈÐèÒªÓиöÕë¶ÔRASµÄÍ·Îļþ¶¨Ò壬Ras.pas´úÂëÈçÏÂ
{* Cop ......
Ò»¡¢Òý×Ó£º
ÏÖÔÚµÄWindowsÓ¦ÓóÌÐò¼¸ºõ¶¼Ê¹ÓÃͼ±ê¡¢Í¼Æ¬¡¢¹â±ê¡¢ÉùÒôµÈ£¬ÎÒÃdzÆËüÃÇΪ×ÊÔ´£¨Resource£©¡£×î¼òµ¥µÄʹÓÃ×ÊÔ´µÄ°ì·¨ÊǰÑÕâЩ×ÊÔ´µÄÔ´Îļþ´òÈëÈí¼þ°ü£¬ÒÔ·½±ã³ÌÐòÐèÒªµÄʱºòµ÷Óá£×ÊÔ´ÊdzÌÐòµÄÒ»²¿·Ö£¬³ÌÐòÒªÕý³£ÔËÐоÍÀë²»ÁË×ÊÔ´Îļþ¡£µ«ÊÇËüÊDz»¿ÉÖ´ÐдúÂë¡£
ΪÁ˸üºÃµØ¹ÜÀí×ÊÔ´£¬DelphiÖÐÌṩÁËÒ»ÖÖ.RESÀàÐ ......
»ñµÃÍø¿¨µÄMACµØÖ·ÔÚºÜ¶àµØ·½¶¼ÓкܴóµÄÓô¦,ÏÂÃæµÄº¯ÊýÒÔXX-XX-XX-XX-XX-XX µÄ¸ñʽ·µ»ØÔ¶³Ì»ò±¾µØ»úÆ÷µÄMACµØÖ·¡£
Function to return the MAC address of a remote or local machine in the format XX-XX-XX-XX-XX-XX
·µ»ØµÄMACµØÖ·ÊÇÒ»¸öÄÜÓÃÔÚ¶à¸ö·½ÃæµÄΨһ±êʶ¡£Ê¹Ó÷½·¨£º
ShowMessage(GetMacAddress( ......