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 ......
ÔÚʹÓöàÏ̵߳Äʱºò£¬Èç¹û¶àÏ̶߳Ôij¸öÌØ¶¨µÄ¹«¹²Êý¾Ý»ò×ÊÔ´½øÐзÃÎÊ£¬ÐèÒª¶Ô¶àÏ߳̽øÐÐе÷²Ù×÷£¬½Ð×öÏß³Ìͬ²½¡£
ÀýÈ磺Èý¸öÏ̷ֱ߳ðÑ»·µØÏòListBoxÖÐдÈëÊý¾Ý¡£Ã»ÓнøÐÐͬ²½Ê±£¬Ð´ÈëµÄ˳ÐòÊDz»È·¶¨µÄ¡£
{Ö÷´°Ìå´úÂë}
unit Unit2;
interface
uses
Windows, Messages, SysUtils, V ......
»¥³âÁ¿ÊÇϵͳÄں˶ÔÏó£¬ËÓµÓоÍËÖ´ÐС£ËüÓëÁÙ½çÇø¹¤×÷ºÜÀàËÆ¡£²»Í¬´¦ÔÚÓÚ£º1¡¢»¥³âÁ¿¿ÉÒÔ¿ç½ø³Ì±ß½çͬ²½Ï̡߳£2¡¢¿ÉÒÔ¸ø»¥³âÁ¿È¡¸öÃû×Ö£¬Í¨¹ýÒýÓû¥³âÁ¿µÄÃû×ÖÀ´Ê¹ÓÃÒ»¸öÒÑÖªµÄ»¥³âÁ¿¶ÔÏó¡£
ʹÓû¥³âÁ¿Ö®ÀàµÄ¶ÔÏóÐèÒª·´¸´µ÷ÓÃϵͳÄںˣ¬ÆÚ¼äÐèÒª½øÐнø³ÌÉÏÏÂÎÄת»»ºÍ¿ØÖƼ¶±ðת»»£¬´ó¸ÅÐèÒªºÄ· ......
Ò»¸öÏ̵߳ÄÓÅÏȼ¶È¡¾öÓÚ´´½¨Ï̵߳Ľø³ÌµÄÓÅÏȼ¶£¨priority class£©ºÍÏ̱߳¾ÉíÏà¶ÔµÄÓÅÏȼ¶£¨relative priority£©¡£
1¡¢½ø³ÌÓÅÏȼ¶£º
²»Í¬²Ù×÷ϵͳ ÓÅÏȼ¶ÊýÄ¿²»Í¬¡£Windows2000ÒÔÉϵİ汾ÁбíÈçÏ£º
Idle£º£¨±êÖ¾£ºIDLE_PRIORITY_CLASS£¬ÖµÎª$40£©£»
Below Normal£º£¨±êÖ¾£ºBEL ......
ÔÚDelphiÖеÄRecordÀàÐÍÖУ¬ÓëÖ®CÓïÑÔ¶ÔÓ¦µÄ¼´ÊǽṹÌåÀàÐÍ£¨struct
£©£¬Ò²¿ÉÄÜÊÇΪÁË·ûºÏCÓïÑÔ»òC++³ÌÐòÔ±µÄϰ¹ß£¬¶ÔÓÚËüÔÚDelphiÖеÄÓ¦ÓôæÔÚµÄһЩÎÊÌâ½øÐгõ²½µÄ˵Ã÷¡£ÔÚDelphiÖеļǼÌåÀàÐÍÓÐÁ½ÖÖ·½Ê½¶¨Òå
Type
RecTest = record (packed
)
ID :integer; ......