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: ÍêÈ«²¼¶û±í´ïÁ¿Åж¨¡£ÓÃÓÚÖ´ÐÐÇ¿ÖÆµÄÍêÕû±í´ïʽÅж¨¡£ÍêÈ«²¼¶ûÁ¿Åж¨£¬ÓпÉÄܵ¼ÖÂϵͳ±ÀÀ££¬ËùÒÔÒ»°ã²»Ê¹ÓÃËû¡
Ïà¹ØÎĵµ£º
Ä£°å·½·¨Ä£Ê½¶¨ÒåÁËÒ»¸öËã·¨¹Ç¼Ü£¬ÔÊÐí×ÓÀà¶ÔËã·¨µÄij¸ö»òijЩ²½Öè½øÐÐÖØÐ´£¨override)¡£
1.CoffeineBeverageWithHook
{¡¶HeadFirstÉè¼ÆÄ£Ê½¡·Ö®Ä£°å·½·¨Ä£Ê½ }
{ ±àÒ빤¾ß: Delphi7.0 }
{ E-Mail : xshlife@163.com }
unit uCoffeineBeverageWithHook;
interface
uses
SysUti ......
ʲôÊǶà̬£¬×ÖÃæÒâ˼¾ÍÊÇ“¶àÖÖÐÎ̬”£¬ÓöÔÏóÀ´½²¾ÍÊÇ×ÓÀà¼Ì³Ð»ùÀ࣬¶ø²»Í¬µÄ×ÓÀàÓÖ·Ö±ð¶Ô»ùÀà½øÐй¦ÄܵÄÀ©Õ¹¡£
¶à̬ÔÚObject PascalÖÐÊÇͨ¹ýÐé·½·¨ÊµÏֵģ¨Virtual Method£©,ÔÚObject PascalÖлùÀàµÄÐé·½·¨ÊÇ¿ÉÒÔ±»ÅÉÉúÀา¸Ç£¨Override£©µÄ ......
ûÓÐÓ¦ÓÃ״̬ģʽµÄ´úÂë
1. ¹¤³ÌÎļþ
program Project1;
{$APPTYPE CONSOLE}
uses
uGumballMachine in 'uGumballMachine.pas';
var
aGumballMachine: TGumballMachine;
begin
aGumballMachine := TGumballMachine.Create(5);
aGumballMachine.InsertQuarter;
aGumballMachine.TurnCrank;
Writeln; ......
ÔÚÖ÷½çÃæµÄ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 ......
¹¹½¨ Windows SOAP ·þÎñÆ÷Ó¦ÓóÌÐò
Ê×ÏÈÔÚ Windows ÉϹ¹½¨·þÎñÆ÷£¬È»ºóÔÚ Linux ÉϹ¹½¨¿Í»§»ú¡££¨Èç¹ûÐèÒª£¬¿ÉÒÔʹÓÃÆäËü·½·¨ — »òÕß½«ËüÃÇÈ«²¿¹¹½¨ÔÚ Windows »ò Linux ÉÏ¡££©¶ÔÓÚ Windows SOAP ·þÎñÆ÷£¬Æô¶¯ Delphi 7 Enterprise£¬Ö´ÐÐ File -> New -> Other£¬×ªÖÁ¶ÔÏó×ÊÔ´¿â£¨Object Repository£©µÄ ......