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,Æä
Ïà¹ØÎĵµ£º
Ö¸ÕëÓ÷¨µÄÀý×Ó£º
1 var
2 X, Y: Integer; // X and Y ÕûÊýÀàÐÍ
3 &n ......
2010-02-22 17:08:46
Delphi°Ñ¶àÏß³ÌÏà¹ØµÄAPI·â×°ÔÚTThreadÕâ¸öÀàÖУ¬¿ÉÒÔ·½±ãʵÏÖ¶àÏß³ÌÔËÓá£Ê×ÏÈ¿´ÏÂTThreadµÄÉùÃ÷£º
TThread = class
private
FHandle: THandle;
FThreadID: THandle;
FCreateSuspended: Boolean;
FTerminated: Boolean;
FSuspended: Boolean;
FFreeOnTerminate: ......
»¥³âÁ¿ÊÇϵͳÄں˶ÔÏó£¬ËÓµÓоÍËÖ´ÐС£ËüÓëÁÙ½çÇø¹¤×÷ºÜÀàËÆ¡£²»Í¬´¦ÔÚÓÚ£º1¡¢»¥³âÁ¿¿ÉÒÔ¿ç½ø³Ì±ß½çͬ²½Ï̡߳£2¡¢¿ÉÒÔ¸ø»¥³âÁ¿È¡¸öÃû×Ö£¬Í¨¹ýÒýÓû¥³âÁ¿µÄÃû×ÖÀ´Ê¹ÓÃÒ»¸öÒÑÖªµÄ»¥³âÁ¿¶ÔÏó¡£
ʹÓû¥³âÁ¿Ö®ÀàµÄ¶ÔÏóÐèÒª·´¸´µ÷ÓÃϵͳÄںˣ¬ÆÚ¼äÐèÒª½øÐнø³ÌÉÏÏÂÎÄת»»ºÍ¿ØÖƼ¶±ðת»»£¬´ó¸ÅÐèÒªºÄ· ......
ADO¶àÏß³ÌÊý¾Ý¿â²éѯͨ³£»á³öÏÖ3¸öÎÊÌ⣺
1¡¢CoInitialize ûÓе÷Óã¨CoInitialize was not called£©£»ËùÒÔ£¬ÔÚʹÓÃÈκÎdbGo¶ÔÏóǰ£¬±ØÐëÊÖ µ÷ÓÃCoInitializeºÍCoUninitialize¡£µ÷ÓÃCoInitializeʧ°Ü»á²úÉú"CoInitialize was not called"ÀýÍâ¡£
2¡¢»²¼²»ÔÊÐí»æ»£¨Canvas does not allow drawing£©£»ËùÒÔ£¬±ØÐëͨ¹ýSynch ......
============================================================================
Windows95ÊÇMicrosoft¹«Ë¾µÄµÚÒ»¸öÕæÕýµÄ¶àÈÎÎñ²Ù×÷ϵͳ¡£ÔÚÿһʱ¿Ì¿ÉÒÔÓжà¸ö½ø³Ìͬʱ¹¤×÷£¬¶øÃ¿Ò»¸ö½ø³ÌÓÖ°üº¬Óжà¸öÏ̡߳£µ«Ö»ÓÐÒ»¸ö´¦ÀíÆ÷µÄ¼ÆËã»ú²»¿ÉÄÜÕæÕýµØ“ͬʱ”Ö´Ðжà¸öỊ̈߳¬¶øÊDzÙ×÷ϵͳ°Ñʱ¼ä·Ö³ÉÈô¸É¸öʱ¼äƬ£¬ ......