Delphi ÀàÓë¶ÔÏóÄÚ´æ½á¹¹Ç³Îö(ÉÏ)
²Î¿¼×ÊÁÏ
ÀîÕ½.¡¶Îò͸delphi¡·£¬µÚ1Õ“DELPHIµÄÔ×ÓÊÀ½ç”
“̽Ë÷DelphiÀàÓë¶ÔÏóµÄÄÚ´æ½á¹¹”
»ù±¾ÖªÊ¶
¶¯Ì¬ÄÚ´æÓ뾲̬ÄÚ´æ
µ±³ÌÐòÔËÐÐʱ£¬ÏµÍ³Ê×ÏȽ«ËùÓÐÊý¾Ý×°ÔØÈëÄڴ棬Íê³É³õʼ»¯£¬È»ºó´ÓÈë¿ÚµØÖ·¿ªÊ¼Ö´ÐдúÂë¡£
³ÌÐò×°ÔØºó¼´´æÔÚÓÚÄÚ´æ¿Õ¼äÖеÄÊý¾ÝÎÒÃdzÆÖ®Îª¾²Ì¬Äڴ棬ÔËÐйý³ÌÖзÖÅäµÄÄÚ´æÎÒÃdzÆÖ®Îª¶¯Ì¬ÄÚ´æ¡£
DelphiµÄÀàÊÇÓɱàÒëÆÚ¼ä¾ö¶¨µÄ£¬±àÒëÍê³Éºó¼´¹Ì¶¨ÔÚ³ÌÐòÖУ¬ËùÒÔÀàÊÇ´æÔÚÓÚ¾²Ì¬ÄÚ´æÖУ¨ÀàÐÅÏ¢Ó¦¸ÃÊÇλÓÚÊý¾Ý¶Î£¬ÀàµÄ·½·¨ÊµÏÖÓ¦¸ÃÊÇλÓÚ´úÂë¶Î£©¡£¶ÔÏóÊÇÓÉÔËÐÐÆÚ¼ä´´½¨µÄ£¬ËùÒÔ¶ÔÏóÊôÓÚ¶¯Ì¬ÄÚ´æ¡£
¶ÔÏó
DELPHIÖеĶÔÏóÊÇÒ»¸öÖ¸Õ룬Õâ¸öÖ¸ÕëÖ¸Ïò¸Ã¶ÔÏóÔÚÄÚ´æÖÐËùÕ¼¾ÝµÄÒ»¿é¿Õ¼ä¡£ÎÒÃÇ¿ÉÒÔÊÔ×ÅÓÃsizeofº¯Êý»ñÈ¡¶ÔÏóµÄ´óС£¬½á¹ûÊÇ4×Ö½Ú£¬ÕâÕýÊÇÒ»¸ö32λָÕëµÄ´óС¡£¶ø¶ÔÏóµÄÕæÕý´óСӦ¸ÃÓÃMyObject.InstanceSize»ñµÃ¡£
¶ÔÏó¿Õ¼ä
ÎÒÃǽ«¶ÔÏóÖ¸ÕëÖ¸ÏòµÄÄÚ´æ¿Õ¼ä³ÆÎª¶ÔÏó¿Õ¼ä¡£¶ÔÏó¿Õ¼äµÄÍ·4¸ö×Ö½ÚÊÇÖ¸Ïò¸Ã¶ÔÏóÖ±ÊôÀàµÄÐé·½·¨µØÖ·±í£¨VMT – Vritual Method Table£©¡£½ÓÏÂÀ´µÄ¿Õ¼ä¾ÍÊÇ´æ´¢¶ÔÏó±¾Éí³ÉÔ±Êý¾ÝµÄ¿Õ¼ä£¬²¢°´´Ó¸Ã¶ÔÏó×îÔÊ¼×æÏÈÀàµÄÊý¾Ý³ÉÔ±µ½¸Ã¶ÔÏó¾ßÌåÀàµÄÊý¾Ý³ÉÔ±µÄ×Ü˳Ðò£¬ºÍÿһ¼¶ÀàÖж¨ÒåÊý¾Ý³ÉÔ±µÄÅÅÁÐ˳Ðò´æ´¢¡£
µ±Ò»¸ö¶ÔÏó²úÉúʱ£¬ÏµÍ³»áΪ¸Ã¶ÔÏó·ÖÅäÒ»¿éÄÚ´æ¿Õ¼ä£¬È»ºó½«¿Õ¼äµÄÍ·4¸ö×ֽڴ洢ΪָÏòÀàµÄVMTµÄÖ¸Õ룬´Ó¶ø½«¸Ã¶ÔÏóÓë¶ÔÏóµÄÖ±ÊôÀàÁªÏµÆðÀ´¡£¼´Ê¹Àಢ䶨ÒåÈκÎÐé·½·¨£¬¶ÔÏóÈÔÈ»»á±£´æÖ¸ÏòÐé·½·¨µØÖ·±íµÄÖ¸Õ룬ֻÊÇVMTµØÖ·ÏîµÄ³¤¶ÈΪÁã¡£
Àà¿Õ¼ä
ÎÒÃǽ«ÀàÖ¸ÕëÖ¸ÏòµÄÄÚ´æ¿Õ¼ä³ÆÎªÀà¿Õ¼ä¡£ÀàÖ¸ÕëÓëVMTÖ¸ÕëµØÖ·Ïàͬ¡£ÔÚTObjectÖж¨ÒåµÄÐé·½·¨µØÖ·£¨ÈçDestroy¡¢FreeInstanceµÈµÈ£©´æ´¢ÔÚÏà¶ÔVMTÖ¸Õ븺·½ÏòÆ«ÒÆµÄ¿Õ¼äÖС£ÔÚVMTµÄ¸º·½ÏòÆ«ÒÆÓÐ76¸ö×Ö½ÚµÄÊý¾ÝÐÅÏ¢£¬ËüÃÇÊǶÔÏóÀàµÄ»ù±¾Êý¾Ý½á¹¹¡£¶øVMTÊÇ´æ´¢ÎÒÃÇ×Ô¼ºÎªÀඨÒåµÄÐé·½·¨µØÖ·µÄµØ·½£¬ËüÖ»ÊÇÀàÊý¾Ý½áµÄ¹¹À©Õ¹²¿·Ö¡£VMTǰµÄ76¸ö×Ö½ÚµÄÊý¾Ý½á¹¹ÊÇDELPHIÄÚ¶¨µÄ£¬Óë±àÒëÆ÷Ïà¹ØµÄ£¬²¢ÇÒÔÚ½«À´µÄDELPHI°æ±¾ÖÐÓпÉÄܱ»¸Ä±ä¡£
¶ÔÎÒÃǵÄÓ¦ÓóÌÐòÀ´Ëµ£¬ÀàµÄÊý¾ÝÊǾ²Ì¬µÄÊý¾Ý¡£µ±±àÒëÆ÷±àÒëÍê³ÉÎÒÃǵÄÓ¦ÓóÌÐòÖ®ºó£¬ÕâЩÊý¾ÝÐÅÏ¢ÒѾȷ¶¨²¢Òѳõʼ»¯¡£ÎÒÃDZàдµÄ³ÌÐòÓï¾ä¿É·ÃÎÊÀàÊý¾ÝÖеÄÏà¹ØÐÅÏ¢£¬»ñµÃÖîÈç¶ÔÏóµÄ³ß´ç¡¢ÀàÃû»òÔËÐÐʱ¿ÌµÄÊôÐÔ×ÊÁϵȵÈÐÅÏ¢£¬»òÕßµ÷ÓÃÐé·½·¨ÒÔ¼°¶ÁÈ¡·½·¨µÄÃû³ÆÓëµØÖ·µÈµÈ²Ù×÷¡£
VMT
ÿһ¸öÀà¶¼ÓжÔÓ¦µÄÒ»¸öÐé·½·¨µØÖ·±í£¨VMT – Vritual
Ïà¹ØÎĵµ£º
µÚÒ»ÖÖ·½·¨,ʹÓÃSelectDirectory º¯Êý ,ÔÚShellApiÖÐ
procedure TForm2.BtSelectPathClick(Sender: TObject);
var
strCaption,strDirectory:String;
wstrRoot:WideString;
begin
strCaption:='ÕâÊÇä¯ÀÀÎļþ¼ÐµÄ˵Ã÷ÎÄ×Ö£¬¿ÉÒÔ¸ù¾ÝÐèÒª½ ......
DelphiÊý¾Ý¿â±à³ÌÒ»ÈÕͨ¡£
¡¡¡¡Í¨³£Çé¿öÏ£¬ÀûÓà Delphi ¿ª·¢Êý¾Ý¿âÓ¦ÓóÌÐò£¬¿ÉÒÔʹÓÃTTable¡¢TDataSource¡¢TDBEdit¡¢TDBNavigatorµÈ¹¹¼þ¡£Ö»ÒªÕýÈ·ÉèÖÃÁ˹¹¼þµÄijЩÊôÐÔ£¬ÔÙ±àд±ØÒªµÄ³ÌÐò´úÂë¶ÔÒ»Ð©ÌØ¶¨Ê¼þ½øÐд¦Àí£¬¾ÍÄܹ»Íê³É¶Ô¶àÖÖÊý¾Ý¿â½øÐеÄÊý¾Ý´¦Àí£¬ÀýÈ磺¼Ç¼µÄÊäÈë¡¢Ð޸ġ¢É¾³ýºÍ²éѯµÈ¡£ÕâÑù×öËäȻֻÐèÒª±à ......
//ÉùÃ÷:
GetWindowText(
hWnd: HWND; {´°¿Ú¾ä±ú}
lpString: PChar; {½ÓÊÕÎı¾µÄ»º³åÇøµÄÖ¸Õë}
nMaxCount: Integer {Ö¸¶¨»º³åÇø´óС, ÆäÖаüº¬NULL×Ö·û; Èç¹ûÎı¾³¬³ö£¬»á±»±»½Ø¶Ï}
): Integer; {·µ»Ø×Ö·û¸öÊý, ²»°üÀ¨ÖжϵĿÕ×Ö·û; Èç¹û±êÌâΪ¿Õ»ò¾ä±úÎÞЧ, Ôò·µ»ØÁã}
//¾ÙÀý:
var
arr: ......
delphiÖ¸Õë¼òµ¥ÈëÃÅ:
¿´Ò»¸öÖ¸ÕëÓ÷¨µÄÀý×Ó£º
1 var
2 X, Y: Integer; // X and Y ÕûÊýÀàÐÍ
3 ......