delphi ±àдdllÎļþ
dllÎļþ¼ò½é£º
ËüÊÇDynamic Link Library µÄËõдÐÎʽ£¬DLL ÊÇÒ»¸ö°üº¬¿ÉÓɶà¸ö³ÌÐòͬʱʹÓõĴúÂëºÍÊý¾ÝµÄ¿â£¬DLL²»ÊÇ¿ÉÖ´ÐÐÎļþ¡£¶¯Ì¬Á´½ÓÌṩÁËÒ»ÖÖ·½·¨£¬Ê¹½ø³Ì¿ÉÒÔµ÷Óò»ÊôÓÚÆä¿ÉÖ´ÐдúÂëµÄº¯Êý¡£º¯ÊýµÄ¿ÉÖ´ÐдúÂëλÓÚÒ»¸ö DLL ÖУ¬¸Ã DLL °üº¬Ò»¸ö»ò¶à¸öÒѱ»±àÒë¡¢Á´½Ó²¢ÓëʹÓÃËüÃǵĽø³Ì·Ö¿ª´æ´¢µÄº¯Êý¡£DLL »¹ÓÐÖúÓÚ¹²ÏíÊý¾ÝºÍ×ÊÔ´¡£¶à¸öÓ¦ÓóÌÐò¿Éͬʱ·ÃÎÊÄÚ´æÖе¥¸öDLL ¸±±¾µÄÄÚÈÝ¡£DLL ÊÇÒ»¸ö°üº¬¿ÉÓɶà¸ö³ÌÐòͬʱʹÓõĴúÂëºÍÊý¾ÝµÄ¿â¡£ÀýÈ磬ÔÚ Windows ²Ù×÷ϵͳÖУ¬Comdlg32 DLL Ö´ÐÐÓë¶Ô»°¿òÓйصij£¼ûº¯Êý¡£Òò´Ë£¬Ã¿¸ö³ÌÐò¶¼¿ÉÒÔʹÓøà DLL Öаüº¬µÄ¹¦ÄÜÀ´ÊµÏÖ“´ò¿ª”¶Ô»°¿ò¡£ÕâÓÐÖúÓÚ´Ù½ø´úÂëÖØÓúÍÄÚ´æµÄÓÐЧʹÓá£
¡¡¡¡Í¨¹ýʹÓà DLL£¬³ÌÐò¿ÉÒÔʵÏÖÄ£¿é»¯£¬ÓÉÏà¶Ô¶ÀÁ¢µÄ×é¼þ×é³É¡£ÀýÈ磬һ¸ö¼ÆÕʳÌÐò¿ÉÒÔ°´Ä£¿éÀ´ÏúÊÛ¡£¿ÉÒÔÔÚÔËÐÐʱ½«¸÷¸öÄ£¿é¼ÓÔØµ½Ö÷³ÌÐòÖУ¨Èç¹û°²×°ÁËÏàӦģ¿é£©¡£ÒòΪģ¿éÊDZ˴˶ÀÁ¢µÄ£¬ËùÒÔ³ÌÐòµÄ¼ÓÔØËٶȸü¿ì£¬¶øÇÒÄ£¿éÖ»ÔÚÏàÓ¦µÄ¹¦Äܱ»ÇëÇóʱ²Å¼ÓÔØ¡£
¡¡¡¡´ËÍ⣬¿ÉÒÔ¸üΪÈÝÒ׵ؽ«¸üÐÂÓ¦ÓÃÓÚ¸÷¸öÄ£¿é£¬¶ø²»»áÓ°Ïì¸Ã³ÌÐòµÄÆäËû²¿·Ö¡£ÀýÈ磬Äú¿ÉÄܾßÓÐÒ»¸ö¹¤×ʼÆËã³ÌÐò£¬¶øË°ÂÊÿÄê¶¼»á¸ü¸Ä¡£µ±ÕâЩ¸ü¸Ä±»¸ôÀëµ½ DLL ÖÐÒÔºó£¬ÄúÎÞÐèÖØÐÂÉú³É»ò°²×°Õû¸ö³ÌÐò¾Í¿ÉÒÔÓ¦ÓøüÐÂ
±àдDLLµÄÄ¿µÄÊÇΪÁËÊä³öÀý³Ì¹©ÆäËû³ÌÐòµ÷ÓÃ,Òò´ËÔÚDLLµÄ¹¤³ÌÎļþÖÐÒª°ÑÊä³öµÄÀý³ÌÓÃExports¹Ø¼ü×ÖÒý³ö¡£ÔÚµ÷ÓÃDLLµÄÓ¦ÓóÌÐòÖÐ,ÐèÒªÉùÃ÷Óõ½µÄDLLÖеķ½·¨,ÉùÃ÷¸ñʽҪºÍDLLÖеÄÉùÃ÷Ò»Ñù¡£·ÃÎÊDLLÖеÄÀý³ÌÓо²Ì¬µ÷ÓúͶ¯Ì¬µ÷ÓÃÁ½ÖÖ·½Ê½¡£¾²Ì¬µ÷Ó÷½Ê½¾ÍÊÇÔÚµ¥ÔªµÄInterface²¿·ÖÓÃExternalָʾ×ÖÁгöÒª´ÓDLLÖÐÒýÈëµÄÀý³Ì;¶¯Ì¬µ÷Ó÷½Ê½¾ÍÊÇͨ¹ýµ÷ÓÃWindowsµÄAPI°üÀ¨LoadLibraryº¯Êý¡¢GetProcAddressº¯ÊýÒÔ¼°FreeLibraryº¯Êý¶¯Ì¬µÄÒýÈëDLLÖеÄÀý³Ì¡£
¡¡¡¡¾²Ì¬µ÷Ó÷½Ê½ËùÐèµÄ´úÂë½Ï¶¯Ì¬µ÷Ó÷½Ê½ËùÐèµÄÉÙ,µ«´æÔÚ×ÅһЩ²»×ã,Ò»ÊÇÈç¹ûÒª¼ÓÔØµÄDLL²»´æÔÚ»òÕßDLLÖÐûÓÐÒªÒýÈëµÄÀý³Ì,Õâʱºò³ÌÐò¾Í×Ô¶¯ÖÕÖ¹ÔËÐÐ;¶þÊÇDLLÒ»µ©¼ÓÔØ¾ÍһֱפÁôÔÚÓ¦ÓóÌÐòµÄµØÖ·¿Õ¼ä,¼´Ê¹DLLÒѲ»ÔÙÐèÒªÁË¡£¶¯Ì¬µ÷Ó÷½Ê½¾Í¿É½â¾öÒÔÉÏÎÊÌâ,ËüÔÚÐèÒªÓõ½DLLµÄʱºò²Åͨ¹ýLoadLibraryº¯ÊýÒýÈë,ÓÃÍêºóͨ¹ýFreeLibraryº¯Êý´ÓÄÚ´æÖÐÐ¶ÔØ,¶øÇÒͨ¹ýµ÷GetProcAddressº¯Êý¿ÉÒÔÖ¸¶¨²»Í¬µÄÀý³Ì¡£×îÖØÒªµÄÊÇ,Èç¹ûÖ¸¶¨µÄDLL³ö´í,ÖÁ¶àÊÇAPIµ÷ÓÃʧ°Ü,²»»áµ¼Ö³ÌÐòÖÕÖ¹¡£ÒÔϽ«Í¨¹ý¾ßÌåµÄʵÀý˵Ã÷˵Ã÷Õâµ÷Ó÷½Ê½µÄʹÓ÷½·¨¡£
¡¡¡¡1£®¾²Ì¬µ÷Ó÷½Ê½
¡¡¡¡Ê¾Àý³ÌÐò´´½¨ÁËÒ»¸öDLL,Æä
Ïà¹ØÎĵµ£º
CTRL+SPACE ´úÂ벹ȫ£¬ºÜºÃÓõÄ(ÏȸÄÁËÊäÈë·¨Èȼü)
CTRL+SHIFT+C ±àдÉêÃ÷»òÕß²¹ÉϺ¯Êý
CTRL+SHIFT+↑(↓) ÔÚ¹ý³Ì¡¢º¯Êý¡¢Ê¼þÄÚ²¿, ¿ÉÌøÔ¾µ½ÏàÓ¦µÄ¹ý³Ì¡¢º¯Êý¡¢Ê¼þµÄ¶¨Ò壨ÔÚINTERFACEºÍIMPLEMENTATIONÖ®¼äÀ´»ØÇл»£©
CTRL+SHIFT+G ²åÈëGUID
CTRL+J (µ¯³öDELPHIÓï¾äÌáʾ´°¿Ú£¬Ñ¡ÔñËùÐèÓï¾ä½«×Ô¶¯Íê³ÉÒ»Ìõ ......
¹ØÓÚdelphi Assigned
1.¸ù¾Ý Delphi Ö¸Áî²Î¿¼ÊÖ²áÖÐ
˵Ã÷£º
Assigned º¯Ê½ÔÚ²ÎÊý²»Îªnilʱ´«»ØTrue,±íʾָÕëÒѾָµ½Ä³¸öÄÚ´æµØÖ·£¬Õâ¸öÄÚ´æµØÖ·¿ÉÄÜÊÇÒ»¸ö¶ÔÏóµØÊ×µØÖ·£¬Ò²¿ÉÄÜÔÚº¯Êý»ò¹ý³ÌÖУ¬ÉùÃ÷Ò»¸öÖ¸Õë±äÁ¿£¬Ã»Óи³ÖµÎªnil £¬ÎÞÂÒµÄÖ¸Ïòij´¦£¬ÕâÁ½¸öÖÖÇé¿ö£¬Assigned£¨Ö¸Õë±äÁ¿£©¶¼²»Îªnil , º¯Êý·Å»ØTrue£»
¶ø² ......
2010-02-22 17:08:46
Delphi°Ñ¶àÏß³ÌÏà¹ØµÄAPI·â×°ÔÚTThreadÕâ¸öÀàÖУ¬¿ÉÒÔ·½±ãʵÏÖ¶àÏß³ÌÔËÓá£Ê×ÏÈ¿´ÏÂTThreadµÄÉùÃ÷£º
TThread = class
private
FHandle: THandle;
FThreadID: THandle;
FCreateSuspended: Boolean;
FTerminated: Boolean;
FSuspended: Boolean;
FFreeOnTerminate: ......
VCL¶ÔÏó²»ÊÇḬ̈߳²È«µÄ£¬¶øÇÒËüÃǵÄÊôÐԺͷ½·¨±ØÐëÒª´ÓVCLÖ÷Ïß³ÌÖнøÐзÃÎÊ»ò±»Ö´ÐУ¬µ«ÓÐÁ½ÖÖVCL¶ÔÏóÊÇÀýÍâµÄÇé¿ö£¬ËüÃÇÊÇḬ̈߳²È«µÄ¡£Ò»ÖÖÊÇÈκÎͼÐζÔÏó£¬ÁíÒ»ÖÖÊÇTThreadList¡£
ÕâÒâζ×Ų»±Ø·ÇµÃÔÚÖ÷VCLÏß³ÌÖвÅÄÜÉèÖÃÒ»¸ö»²¼µÄ»±ÊÑÕÉ«£¬»ò»Ë¢ÀàÐÍ£¬¿ÉÒÔÔÚÁíÒ»¸öÏ̵߳Ļ·¾³ÖÐÍê³ÉÒ»µã¡£¶Ô ......