ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡
µÚÈýµç×ÓÊé ·µ»Ø±¾ÊéĿ¼ ¼ÓÈëÊéÇ© ÎÒµÄÊé¼Ü ÎÒµÄÊéÇ© TXTÈ«±¾ÏÂÔØ ¡ºÊղص½ÎÒµÄä¯ÀÀÆ÷¡»

CÓïÑÔʵÀý½Ì³Ì(PDF¸ñʽ)-µÚ76²¿·Ö

¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿! Èç¹û±¾ÊéûÓÐÔĶÁÍ꣬ÏëÏ´μÌÐø½Ó×ÅÔĶÁ£¬¿ÉʹÓÃÉÏ·½ "Êղص½ÎÒµÄä¯ÀÀÆ÷" ¹¦ÄÜ ºÍ "¼ÓÈëÊéÇ©" ¹¦ÄÜ£¡


Ò»Ñù£¬Ö»²»¹ýÔÚº¯ÊýMsgBox£¨£©ÖУ¬²»ÐèÒªÖ¸¶¨ÏûÏ¢µÄ¸¸´°¿Ú£¬¶øÇÒ¿É¡¡

ÒÔȱʡÆäËüËùÓеIJÎÊý¡£¡¡¡¡



¡¡¡¡¡¡£¨1£©¡¡Ê¹ÓÃÄ£¿é¶¨ÒåÎļþ¡¡¡¡



Ä£¿é¶¨ÒåÎļþÊÇÒ»¸öÎı¾Îļþ£¬Ëü°üÀ¨ÁËһϵÁеÄÄ£¿éÓï¾ä£¬ÕâЩÓï¡¡

¾äÓÃÀ´ÃèÊöDLLµÄ¸÷ÖÖÊôÐÔ£¬µäÐ͵ģ¬Ä£¿éÓï¾ä¶¨ÒåÁËDLLÖÐËùµ¼³öµÄ¡¡

º¯ÊýµÄÃû³ÆºÍ˳ÐòÖµ¡£¡¡¡¡



ÔÚ½²½âÄ£¿é¶¨ÒåÎļþ֮ǰ£¬ÎÒÃÇÏÈ´´½¨Ò»¸öWin32¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Dynamic¡­Link¡¡¡¡

Library¹¤³Ì¡£¡¡¡¡



1¡£¡¡ÔÚMicrosoft¡¡Developer¡¡StudioÖÐÑ¡ÔñFile²Ëµ¥ÏµÄNewÃüÁÔÚ¡¡

ProjectsÑ¡ÏÖÐÑ¡ÔñWin32¡¡Dynamic¡­Link¡¡Library£¬²¢Îª¹¤³ÌÈ¡Ò»¡¡

¸öÃû×Ö£¬Èçmsgbox¡£µ¥»÷OKºó£¬Visual¡¡¡¡C£«£«´´½¨Ò»¸öWin32¡¡¡¡DLLµÄ¿Õ¡¡

°×¹¤³Ì£¬±ØÐëÊÖ¶¯µÄ½«ËùÐèÒªµÄÎļþÌí¼Óµ½¹¤³ÌÖС£¡¡¡¡



2¡£¡¡¡¡µ¥»÷Project²Ëµ¥ÏµÄAdd¡¡¡¡To¡¡¡¡Project×Ӳ˵¥ÏµÄNewÃüÁÔÚ¡¡

FilesÑ¡ÏÖÐÑ¡ÔñText¡¡¡¡¡¡File£¬ÔÚFileÎı¾¿òÖÐÊäÈëDEFÎļþÃû£¬Èç¡¡

msgbox¡£def¡£¡¡¡¡



3¡£¡¡¡¡¡¡Ë«»÷Workspace´°¿ÚµÄFileViewÑ¡ÏÖеÄmsgbox¡£def½Úµã£¬ÔÚ¡¡

msgbox¡£defÎļþÖÐÊäÈëÏÂÃæµÄÄÚÈÝ£º¡¡¡¡



LIBRARY¡¡MSGBOX¡¡¡¡



DESCRIPTION¡¡¡¨Ò»¸öDLLµÄ¼òµ¥Àý×Ó¡¨¡¡¡¡



EXPORTS¡¡¡¡



MsgBox¡¡@1¡¡¡¡



ÔÚDEFÎļþÖеĵÚÒ»ÌõÓï¾ä±ØÐëÊÇLIBRARYÓï¾ä£¬¸ÃÓï¾ä±íÃ÷¸ÃDEFÎÄ¡¡

¼þÊôÓÚÒ»¸öDLL£¬ÔÚLIBRARYÖ®ºóÊÇDLLµÄÃû³Æ£¬Õâ¸öÃû³ÆÔÚÁ´½Óʱ½«¡¡

·Åµ½DLLµÄÒýÈë¿âÖС£¡¡¡¡



EXPORTSÓï¾äÏÂÁгöÁËDLLµÄËùÓе¼³öº¯ÊýÒÔ¼°ËüÃǵÄ˳ÐòÖµ¡£º¯ÊýµÄ¡¡

˳ÐòÖµ²»ÊDZØÐëµÄ£¬ÔÚÖ¸¶¨µ¼³öº¯ÊýµÄ˳Ðòֵʱ£¬ÎÒÃÇÔÚº¯ÊýÃûºó¸ú¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡667¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

ÉÏÒ»¸ö@·ûºÅºÍÒ»¸öÊý×Ö£¬¸ÃÊý×Ö¼´µ¼³öº¯ÊýµÄ˳ÐòÖµ¡£Èç¹ûÔÚDEFÖС¡

Ö¸¶¨ÁË˳ÐòÖµ£¬Ëü±ØÐ벻СÓÚ1£¬ÇÒ²»´óÓÚDLLÖÐËùÓе¼³öº¯ÊýµÄÊý¡¡

Ä¿¡£¡¡¡¡



DESCRIPTIONÓï¾äÊÇ¿ÉÑ¡µÄ£¬Ëü¼òµ¥µÄ˵Ã÷ÁËDLLµÄÓÃ;¡£¡¡¡¡



4¡£¡¡¡¡ÏÂÒ»²½ÊÇÏò¹¤³ÌÖÐÌí¼ÓÒ»¸öÍ·Îļþ£¬Ëü¶¨ÒåÁËDLLÖеĺ¯ÊýµÄ·µ»Ø¡¡

ÖµµÄÀàÐͺͲÎÊýµÄ¸öÊý¡¢Ë³ÐòºÍÀàÐÍ¡£¡¡¡¡



µ¥»÷²Ëµ¥ÏîProject£üAdd¡¡To¡¡Project£üNew¡£¡£¡££¬ÔÚFilesÑ¡ÏÏÂÑ¡Ôñ¡¡

C/C£«£«¡¡¡¡¡¡Header¡¡¡¡¡¡File£¬ÔÚFileÎı¾¿òÖÐÖ¸¶¨Í·ÎļþÃû£¬Èçmsgbox¡£h¡¡

¡¡£¨¿ÉÒÔÊ¡ÂÔºó׺Ãû¡£h£©¡£¡¡¡¡



ÔÚÍ·ÎļþÖÐÊäÈëÈçϵÄÄÚÈÝ£º¡¡¡¡



#include¡¡¡¡¡¡



extern¡¡¡¨C¡¨¡¡int¡¡MsgBox£¨¡¡¡¡



//¡¡ÏûÏ¢¿òµÄÎı¾¡¡¡¡



LPCTSTR¡¡lpText=¡¨ËäÈ»Õâ¸öÀý×ÓÓÐһЩÓ×ÖÉ£¬µ«Ëü¹¤×÷µÃ·Ç³£µÄºÃ¡¡£¡¡¨£»¡¡¡¡



//¡¡ÏûÏ¢¿òµÄ±êÌâ¡¡¡¡



LPCTSTR¡¡lpCaption=¡¨Ò»¸ö¼òµ¥µÄÀý×Ó¡¨£»¡¡¡¡



//¡¡ÏûÏ¢¿òµÄÑùʽ¡¡¡¡



UINT¡¡uType=MB_OK£©£»¡¡¡¡



Çë×¢Ò⺯Êý¶¨ÒåÇ°µÄ¹Ø¼ü×Öextern¡¡¡¡¡¡¡¨C¡¨£¬ÕâÊÇÓÉÓÚÎÒÃÇʹÓÃÁËC£«£«Óï¡¡

ÑÔÀ´¿ª·¢DLL£¬ÎªÁËʹCÓïÑÔÄ£¿éÄܹ»·ÃÎʸõ¼³öº¯Êý£¬ÎÒÃÇÓ¦¸ÃʹÓá¡

CÁ´½ÓÀ´´úÌæC£«£«Á´½Ó¡£·ñÔò£¬C£«£«±àÒëÆ÷½«Ê¹ÓÃC£«£«µÄÀàÐÍ°²È«ÃüÃûºÍ¡¡

µ÷ÓÃЭÒ飬ÕâÔÚʹÓÃCµ÷Óøú¯Êýʱ¾Í»áÓöÉÏÎÊÌâ¡£ÔÚ±¾ÀýÖв¢²»Ðè¡¡

Òª¿¼Âǵ½Õâ¸öÎÊÌ⣬ÒòΪÎÒÃÇÔÚ¿ª·¢DLLºÍÓ¦ÓóÌÐòʱ¶¼ÊÇʹÓÃC£«£«£¬¡¡

µ«ÎÒÃÇÈÔȻǿÁÒ½¨ÒéʹÓÃextern¡¡¡¡¡¡¡¨C¡¨£¬ÒÔ±£Ö¤ÔÚʹÓÃC±àдµÄ³ÌÐòµ÷¡¡

ÓøÃDLLµÄµ¼³öº¯Êý²»»áÓöÉÏÂé·³£¬ÔÚ±¾ÕºóÃæµÄÄÚÈÝÖÐÎÒÃÇ»¹»áÌÖ¡¡

ÂÛµ½Õâ¸öÎÊÌâ¡£¡¡¡¡



5¡£¡¡¡¡ÏÂÃæÒª×öµÄÊÂÊÇÏò¹¤³ÌÖÐÌí¼ÓÒ»¸öC£«£«Ô´Îļþ£¬ÔÚ¸ÃÎļþÖÐʵÏÖº¯¡¡

ÊýMsgBox£¨£©¡£¡¡¡¡



·ÂÕÕÉÏÃæµÄ¹ý³Ì£¬µ¥»÷²Ëµ¥ÏîProject£üAdd¡¡¡¡To¡¡¡¡Project£üNew¡£¡£¡££¬ÔÚ¡¡

FilesÑ¡ÏÏÂÑ¡ÔñC£«£«¡¡¡¡Source¡¡¡¡File£¬ÔÚFileÎı¾¿òÖÐÖ¸¶¨Ô´Îļþ¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡668¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

Ãû£¬Èçmsgbox¡£cpp¡£¡¡¡¡



ÔÚmsgbox¡£cppÎļþÖÐÌí¼ÓÈçϵĴúÂ룺¡¡¡¡



#include¡¡¡¨test1¡£h¡¨¡¡¡¡



int¡¡MsgBox£¨LPCTSTR¡¡lpText£»¡¡¡¡



LPCTSTR¡¡lpCaption£»¡¡¡¡



UINT¡¡uType£©¡¡¡¡



£û¡¡¡¡



return¡¡MessageBox£¨NULL£»lpText£»lpCaption£»uType£©£»¡¡¡¡



£ý¡¡¡¡



±àÒë¸Ã¹¤³Ì£¬ÔÚDebug¡¡Ä¿Â¼ÏÂÉú³ÉÎļþmsgbox¡£libºÍmsgbox¡£dll¡£¡¡¡¡



ÔÚ¡¡¡°13¡£2¡£2¡¡¡¡Á´½ÓÓ¦ÓóÌÐòµ½DLL¡±Ð¡½ÚÖн«½²ÊöÈçºÎʹÓÃÔÚ±¾½ÚÖÐËù¡¡

´´½¨µÄDLL£ºmsgbox¡£dll¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡£¨2£©¡¡Ê¹Óùؼü×Ö__declspec£¨dllexport£©¡¡¡¡



´ÓDLLÖе¼³öÎļþµÄÁíÒ»ÖÖ·½·¨ÊÇÔÚ¶¨Ò庯ÊýʱʹÓÃ__declspec¡¡

£¨dllexport£©¹Ø¼ü×Ö¡£ÕâÖÖ·½·¨²»ÐèҪʹÓÃDEFÎļþ¡£¡¡¡¡



ÈÔʹÓÃÇ°ÃæµÄÀý×Ó£¬ÔÚ¹¤³ÌÖÐɾ³ýmsgbox¡£defÎļþ£¬½«msgbox¡£hÎļþ¡¡

ÐÞ¸ÄÈçÏ£º¡¡¡¡



#include¡¡¡¡¡¡



extern¡¡¡¨C¡¨¡¡__declspec£¨dllexport£©¡¡int¡¡MsgBox£¨¡¡¡¡



//¡¡ÏûÏ¢¿òµÄÎı¾¡¡¡¡



LPCTSTR¡¡lpText=¡¨ËäÈ»Õâ¸öÀý×ÓÓÐһЩÓ×ÖÉ£¬µ«Ëü¹¤×÷µÃ·Ç³£µÄºÃ¡¡£¡¡¨£»¡¡¡¡



//¡¡ÏûÏ¢¿òµÄ±êÌâ¡¡¡¡



LPCTSTR¡¡lpCaption=¡¨Ò»¸ö¼òµ¥µÄÀý×Ó¡¨£»¡¡¡¡



//¡¡ÏûÏ¢¿òµÄÑùʽ¡¡¡¡



UINT¡¡uType=MB_OK£©£»¡¡¡¡



msgbox¡£cppÎļþ²¢²»ÐèÒª×öÈκÎÐ޸ģ¬ÖØбàÒë¸Ã¹¤³Ì£¬ÔÚDebug¡¡Ä¿¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡669¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¼ÏÂÈÔÉú³ÉÁ½¸öÎļþmsgbox¡£libºÍmsgbox¡£dll¡£¡¡¡¡



ÔÚÏÂһС½Ú¡¡¡°13¡£2¡£2¡¡¡¡Á´½ÓÓ¦ÓóÌÐòµ½DLL¡±Öн²ÊöÁËÈçºÎÔÚÓ¦ÓóÌÐò¡¡

ÖÐʹÓÃËù´´½¨µÄDLL£ºmsgbox¡£dllµÄµ¼³öº¯ÊýMsgBox£¨£©¡£¡¡¡¡



ʹÓÃ__declspec£¨dllexport£©´ÓDLLÖе¼³öÀàµÄÓï·¨ÈçÏ£º¡¡¡¡



class¡¡__declspec£¨dllexport£©¡¡CDemoClass¡¡¡¡



£û¡¡¡¡



¡£¡£¡£¡¡¡¡



£ý¡¡¡¡



¡¡¡¡¡¡¡¡



¡¡¡¡l¡¡×¢Ò⣺¡¡¡¡



¡¡¡¡l¡¡Èç¹ûÔÚʹÓÃ__declspec£¨dllexport£©µÄͬʱָ¶¨Á˵÷ÓÃЭÒé¹Ø¼ü¡¡

¡¡¡¡¡¡¡¡×Ö£¬Ôò±ØÐ뽫__declspec£¨dllexport£©¹Ø¼ü×Ö·ÅÔÚµ÷ÓÃЭÒé¹Ø¼ü×Ö¡¡

¡¡¡¡¡¡¡¡µÄ×ó±ß¡£È磺¡¡¡¡



¡¡¡¡l¡¡int¡¡__declspec£¨dllexport£©¡¡__cdacl¡¡MyFunc£¨£©£»¡¡¡¡



¡¡¡¡l¡¡ÔÚ32λ°æ±¾µÄVisual¡¡C£«£«ÖУ¬__declspec£¨dllexport£©ºÍ¡¡

¡¡¡¡¡¡__declspec£¨dllimport£©´úÌæÁË16°æ±¾ÖÐʹÓõÄ__export¹Ø¼ü×Ö¡£¡¡

¡¡¡¡¡¡¡¡Òò´Ë£¬ÔÚ½«16λµÄDLLÔ´´úÂëÒÆÖ²µ½Win32ƽ̨ʱ£¬ÐèÒª°Ñÿһ´¦¡¡

¡¡¡¡¡¡__exportÌ滻Ϊ__declsped£¨dllexport£©¡£¡¡¡¡



ÈçºÎ´ÓÕâÁ½ÖÖµ¼³öº¯ÊýµÄ·½·¨ÖÐ×÷³öÑ¡Ôñ£¬¿ÉÒÔ´ÓÏÂÃæµÄ¼¸¸ö·½Ã濼¡¡

ÂÇ£º¡¡¡¡



¡¡¡¡l¡¡Èç¹ûÐèҪʹÓõ¼³ö˳ÐòÖµ¡¡£¨export¡¡ordinal¡¡value£©£¬ÄÇôӦ¸Ã¡¡

¡¡¡¡¡¡Ê¹ÓÃDEFÎļþÀ´µ¼³öº¯Êý¡£Ö»ÔÚʹÓÃDEFÎļþµ¼³öº¯Êý²ÅÄÜÖ¸¶¨µ¼¡¡

¡¡¡¡¡¡¡¡³öº¯ÊýµÄ˳ÐòÖµ¡£Ê¹ÓÃ˳ÐòÖµµÄÒ»¸öºÃ´¦Êǵ±ÏòDLLÖÐÌí¼ÓÐµĺ¯¡¡

¡¡¡¡¡¡¡¡Êýʱ£¬Ö»ÒªÐµĵ¼³öº¯ÊýµÄ˳ÐòÖµ´óÓÚÔ­Óеĵ¼³öº¯Êý£¬¾ÍûÓС¡

¡¡¡¡¡¡¡¡±ØÒªÖØÐÂÁ´½ÓʹÓÃÒþº¬Á´½ÓµÄÓ¦ÓóÌÐò¡£Ïà·´£¬Èç¹ûʹÓá¡

¡¡¡¡¡¡__declspec£¨dllexport£©À´µ¼³öº¯Êý£¬Èç¹ûÏòDLLÖÐÌí¼ÓÁËÐµĺ¯¡¡

¡¡¡¡¡¡¡¡Êý£¬Ê¹ÓÃÒþº¬Á´½ÓµÄÓ¦ÓóÌÐòÓпÉÒÔÐèÒªÖØбàÒëºÍÁ´½Ó¡£¡¡¡¡



¡¡¡¡l¡¡Ê¹ÓÃDEFÎļþÀ´µ¼³öº¯Êý£¬¿ÉÒÔ´´½¨¾ßÓÐNONAMEÊôÐÔµÄDLL¡£¾ßÓС¡

¡¡¡¡¡¡NONAMEÊôÐÔµÄDLLÔÚµ¼³ö±íÖнö°üº¬Á˵¼³öº¯ÊýµÄ˳ÐòÖµ£¬ÕâÖÖÀà¡¡

¡¡¡¡¡¡¡¡Ð͵ÄDLLÔÚ°üÀ¨ÓдóÁ¿µÄµ¼³öº¯Êýʱ£¬ÆäÎļþ³¤¶ÈҪСÓÚͨ³£µÄ¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡670¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡DLL¡£¡¡¡¡



¡¡¡¡l¡¡Ê¹ÓÃDEFÎļþ´ÓC£«£«Îļþµ¼³öº¯Êý£¬Ó¦¸ÃÔÚ¶¨Ò庯ÊýʱʹÓÃextern¡¡¡¡

¡¡¡¡¡¡¡¨C¡¨»òÕßÔÚDEFÎļþÖÐÖ¸¶¨µ¼³öº¯ÊýµÄdecorated¡¡name¡£·ñÔò£¬ÓÉ¡¡

¡¡¡¡¡¡ÓÚ±àÒëÆ÷Ëù²úÉúµÄdecorated¡¡nameÊÇ»ùÓÚÌض¨±àÒëÆ÷µÄ£¬Á´½Óµ½¡¡

¡¡¡¡¡¡¸ÃDLLµÄÓ¦ÓóÌÐòÒ²±ØÐëʹÓô´½¨DLLµÄͬһ°æ±¾µÄVisual¡¡C£«£«À´¡¡

¡¡¡¡¡¡±àÒëºÍÁ´½Ó¡£¡¡¡¡



¡¡¡¡l¡¡ÓÉÓÚʹÓÃ__declspec£¨dllexport£©¹Ø¼ü×Öµ¼³öº¯Êý²»ÐèÒª±àдDEF¡¡

¡¡¡¡¡¡Îļþ£¬Òò´Ë£¬Èç¹û±àдµÄDLLÖ»¹©×Ô¼ºÊ¹Óã¬Ê¹ÓÃ__declspec¡¡

¡¡¡¡¡¡£¨dllexport£©½ÏΪ¼òµ¥¡£¡¡¡¡



¡¡¡¡¡¡¡¡



¡¡¡¡l¡¡×¢Ò⣺¡¡¡¡



¡¡¡¡l¡¡MFC±¾ÉíʹÓÃÁËDEFÎļþ´ÓMFCx0¡£DLLÖе¼³öº¯ÊýºÍÀà¡£¡¡¡¡



13¡£2¡£2¡¡Á´½ÓÓ¦ÓóÌÐòµ½DLL¡¡¡¡



ͬÑù£¬Á´½ÓÓ¦ÓóÌÐòµ½DLLÒ²ÓÐÁ½ÖÖ·½·¨£º¡¡¡¡



¡¡¡¡l¡¡Òþº¬Á´½Ó¡¡¡¡



¡¡¡¡l¡¡ÏÔʽÁ´½Ó¡¡¡¡



Òþº¬Á´½ÓÓÐʱÓÖ³ÆΪ¾²Ì¬¼ÓÔØ¡£Èç¹ûÓ¦ÓóÌÐòʹÓÃÁËÒþº¬Á´½Ó£¬²Ù×÷¡¡

ϵͳÔÚ¼ÓÔØÓ¦ÓóÌÐòµÄͬʱ¼ÓÔØÓ¦ÓóÌÐòËùʹÓõÄDLL¡£ÏÔʽÁ´½ÓÓС¡

ʱÓÖ³ÆΪ¶¯Ì¬¼ÓÔØ¡£Ê¹Óö¯Ì¬¼ÓÔصÄÓ¦ÓóÌÐò±ØÐëÔÚ´úÂëÖÐÃ÷È·µÄ¼Ó¡¡

ÔØËùʹÓõÄDLL£¬²¢Ê¹ÓÃÖ¸ÕëÀ´µ÷ÓÃDLLÖеĵ¼³öº¯Êý£¬ÔÚʹÓÃÍê±ÏÖ®¡¡

ºó£¬Ó¦ÓóÌÐò±ØÐëжÔØËùʹÓõÄDLL¡£¡¡¡¡



ͬһ¸öDLL¿ÉÒÔ±»Ó¦ÓóÌÐòÒþº¬Á´½Ó£¬Ò²¿ÉÒÔ±»ÏÔʽÁ´½Ó£¬ÕâÈ¡¾öÓÚ¡¡

Ó¦ÓóÌÐòµÄÄ¿µÄºÍʵÏÖ¡£¡¡¡¡



ÏÂÃæÎÒÃÇÔÚ·Ö±ð½²ÊöÁ½ÖÖ²»Í¬µÄÁ´½Ó·½Ê½Ö®ºóÔÙ×÷¶Ô±È¡£¡¡¡¡



¡¡¡¡¡¡£¨1£©¡¡Ê¹ÓÃÒþº¬Á´½Ó¡¡¡¡



ÔÚʹÓÃÒþº¬Á´½Ó³ýÁËÐèÒªÏàÓ¦µÄDLLÎļþÍ⣬»¹±ØÐë¾ß±¸ÈçϵÄÌõ¡¡

¼þ£º¡¡¡¡



¡¡¡¡l¡¡Ò»¸ö°üÀ¨µ¼³öµÄº¯Êý»òC£«£«ÀàµÄÍ·Îļþ¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡671¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡l¡¡Ò»¸öÊäÈë¿âÎļþ¡¡£¨¡£LIBÎļþ£©¡¡¡¡



ͨ³£Çé¿öÏ£¬ÎÒÃÇÐèÒª´ÓDLLµÄÌṩÕßÄÇÀïµÃµ½ÉÏÃæµÄÎļþ¡£ÊäÈë¿â¡¡

ÎļþÊÇÔÚDLLÎļþ±»Á´½ÓʱÓÉÁ´½Ó³ÌÐòÉú³ÉµÄ¡£¡¡¡¡



ÔÚ¡¡¡°13¡£2¡£1¡¡¡¡¡¡DLLµÄ½á¹¹ºÍµ¼³ö·½Ê½¡±ÖÐËù´´½¨µÄDLL£ºmsgbox¡£dllËù¡¡

¶ÔÓ¦µÄÍ·Îļþmsgbox¡£hÈçÏ£º¡¡¡¡



#include¡¡¡¡¡¡



extern¡¡¡¨C¡¨¡¡__declspec£¨dllimport£©¡¡int¡¡MsgBox£¨¡¡¡¡



//¡¡ÏûÏ¢¿òµÄÎı¾¡¡¡¡



LPCTSTR¡¡lpText=¡¨ËäÈ»Õâ¸öÀý×ÓÓÐһЩÓ×ÖÉ£¬µ«Ëü¹¤×÷µÃ·Ç³£µÄºÃ¡¡£¡¡¨£»¡¡¡¡



//¡¡ÏûÏ¢¿òµÄ±êÌâ¡¡¡¡



LPCTSTR¡¡lpCaption=¡¨Ò»¸ö¼òµ¥µÄÀý×Ó¡¨£»¡¡¡¡



//¡¡ÏûÏ¢¿òµÄÑùʽ¡¡¡¡



UINT¡¡uType=MB_OK£©£»¡¡¡¡



ÐèҪעÒâµÄÊÇ£¬Õâ¸ömsgbox¡£hÎļþºÍ´´½¨DLLʱËùʹÓÃmsgbox¡£hÊDz»¡¡

ͬµÄ£¬Î¨Ò»µÄ²î±ðÔÚÓÚ£¬´´½¨DLLʱµÄmsgbox¡£hÖÐʹÓõÄÊÇ¡¡

__declspec£¨dllexport£©¹Ø¼ü×Ö£¬¶ø¹©Ó¦ÓóÌÐòËùʹÓõÄmsgbox¡£h¡¡ÖС¡

ʹÓõÄÊÇ__declspec£¨dllimport£©¹Ø¼ü×Ö¡£ÎÞÂÛ´´½¨DLLʱʹÓõÄÊÇ¡¡

DEFÎļþ»¹ÊÇ__declspec£¨dllexport£©¹Ø¼ü×Ö£¬¾ù¿ÉʹÓÃ__declspec¡¡

£¨dllimport£©¹Ø¼ü×Ö´ÓDLLÖÐÒýÈ뺯Êý¡£ÒýÈ뺯ÊýʱҲ¿ÉÒÔÊ¡ÂÔ¡¡

__declspec£¨dllimport£©¹Ø¼ü×Ö£¬µ«ÊÇʹÓÃËü¿ÉÒÔʹ±àÒëÆ÷Éú³ÉЧÂÊ¡¡

¸ü¸ßµÄ´úÂë¡£¡¡¡¡



¡¡¡¡l¡¡×¢Ò⣺¡¡¡¡



¡¡¡¡l¡¡Èç¹ûÐèÒªÒýÈëµÄÊÇDLLÖеĹ«ÓÃÊý¾ÝºÍ¶ÔÏó£¬Ôò±ØÐëʹÓá¡

¡¡¡¡¡¡¡¡__declspec£¨dllimport£©¹Ø¼ü×Ö¡£¡¡¡¡



ÏÖÔÚʹÓÃMicrosoft¡¡¡¡Developer¡¡¡¡Studio´´½¨Ò»¸öWin32¡¡¡¡Application¡¡

¹¤³Ì£¬ÃüÃûΪtester¡£Ïò¹¤³ÌÖÐÌí¼ÓÒ»¸öC£«£«Ô´Îļþ£¬Èç¡¡

tester¡£cpp¡£ÔÚtester¡£cppÎļþÖÐÊäÈëÏÂÃæµÄ´úÂ룺¡¡¡¡



#include¡¡¡¨msgbox¡£h¡¨¡¡//¡¡Ó¦½«msgbox¡£hÎļþ¿½±´µ½¹¤³ÌtesterµÄĿ¼Ï¡£¡¡¡¡



int¡¡WINAPI¡¡WinMain£¨HINSTANCE¡¡hInstance£»¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡672¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

HINSTANCE¡¡hPrevInstance£»¡¡¡¡



LPSTR¡¡lpCmdLine£»¡¡¡¡



int¡¡nCmdShow£©¡¡¡¡



£û¡¡¡¡



return¡¡MsgBox£¨£©£»¡¡¡¡



£ý¡¡¡¡



ÔÚÉÏÃæµÄ´úÂëÖУ¬MsgBox£¨£©º¯ÊýµÄËùÓвÎÊý¶¼Ê¹ÓÃÁËȱʡֵ¡£¡¡¡¡



¡¡¡¡l¡¡×¢Ò⣺¡¡¡¡



¡¡¡¡l¡¡ÔÚ±àÒë֮ǰ£¬½«ÉÏÒ»²½Éú³ÉµÄmsgbox¡£libÎļþ¿½±´µ½tester¹¤³Ì¡¡

¡¡¡¡¡¡¡¡ËùÔÚµÄĿ¼Ï¡£È»ºóµ¥»÷²Ëµ¥ÏîProject£üSettings¡£¡£¡££¬½«¡¡

¡¡¡¡¡¡¡¡msgbox¡£libÌí¼Óµ½LinkÑ¡ÏϵÄObject/library¡¡modulesÎı¾¡¡

¡¡¡¡¡¡¡¡¿òÖС£Èç¹ûºöÂÔÕâÒ»²½£¬Á´½Óʱ½«»áµ¼Ö´íÎó¡£Íê³ÉÖ®ºó´´½¨¸Ã¡¡

¡¡¡¡¡¡¡¡Ó¦ÓóÌÐò¡£¡¡¡¡



Èç¹ûÏÖÔÚÔËÐиóÌÐò£¬½«³öÏÖÈçͼ13¡£1ËùʾµÄ¶Ô»°¿ò¡£¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Í¼13¡£1¡¡Î´ÕÒµ½DLLʱ³öÏֵĴíÎó¡¡¡¡



ÉÏÃæµÄ¶Ô»°¿ò˵Ã÷³ÌÐòûÓÐÔÚÖ¸¶¨µÄ·¾¶Î´ÕÒµ½ËùÐèÒªµÄDLL¡£¡¡¡¡



Ò»°ãÇé¿öÏ£¬³ÌÐòÔÚÔËÐÐʱ£¬ÏµÍ³½«°´ÈçϵÄ˳Ðò²éÕÒ³ÌÐòËùʹÓõġ¡

¶¯Ì¬Á´½Ó¿â£º¡¡¡¡



¡¡¡¡l¡¡ÏµÍ³Ô¤°²×°µÄDLL£¬ÈçKERNEL32¡£DLLºÍUSER32¡£DLLµÈ¡¡¡¡



¡¡¡¡l¡¡µ±Ç°Ä¿Â¼¡¡¡¡



¡¡¡¡l¡¡WindowsµÄϵͳµÄĿ¼£¬ÈçWINNTsystem32¡¡¡¡



¡¡¡¡l¡¡WindowsËùÔÚµÄĿ¼£¬ÈçWINNT¡¡¡¡



¡¡¡¡l¡¡»·¾³±äÁ¿PATHÖÐËùÖ¸¶¨µÄĿ¼¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡673¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡Í¼13¡£2¡¡testerÓ¦ÓóÌÐòµÄÔËÐнá¹û¡¡¡¡



Èç¹ûWindowsÔÚÉÏÃæµÄĿ¼ÖÐδÕÒµ½ËùÐèÒªµÄDLL£¬Ôòµ¯³öÈçͼ13¡£1Ëù¡¡

ʾµÄ¶Ô»°¿ò¡£ÕâÀÎÒÃÇ°Ñmsgbox¡£dllÎļþ¿½±´µ½testerDebug¡¡Ä¿Â¼¡¡

Ï£¬ÔÙÔËÐÐÓ¦ÓóÌÐò£¬Ôò³öÏÖÈçͼ13¡£2ËùʾµÄ¶Ô»°¿ò¡£¡¡¡¡



¡¡¡¡¡¡¡¡£¨2£©¡¡Ê¹ÓÃÏÔʽÁ´½Ó¡¡¡¡



Èç¹ûûÓÐÓëDLLÏà¹ØÁªµÄLIBÎļþ£¬Ôò±ØÐëʹÓÃÏÔʽÁ´½Ó¡£Ê¹ÓÃÏÔʽÁ´¡¡

½ÓͬÑù±ØÐëÖªµÀº¯Êý·µ»ØÖµµÄÀàÐͺÍËù´«µÝµÄ²ÎÊý¸öÊý¡¢ÀàÐͺÍ˳¡¡

Ðò¡£ÓëʹÓÃÒþº¬Á´½Ó²»Í¬µÄÊÇ£¬Ê¹ÓÃÏÔʽÁ´½ÓµÄÓ¦ÓóÌÐòÔÚµ÷ÓÃDLL¡¡

Öеĵ¼³öº¯ÊýÇ°£¬±ØÐëʹÓÃLoadLibrary£¨£©º¯Êý¼ÓÔØDLL²¢µÃµ½Ò»¸öÄ£¡¡

¿é¾ä±ú¡£È»ºóʹÓøþä±úµ÷ÓÃGetProcAddress£¨£©º¯Êý»ñµÃËùÐèµ÷Óõġ¡

µ¼³öº¯ÊýµÄÖ¸Õ룬²¢Í¨¹ý¸ÃÖ¸Õëµ÷ÓÃDLLÖеĵ¼³öº¯Êý£¬ÕâÖÖģʽʹ¡¡

ÓÃÏÔʽÁ´½Óµ½DLLµÄÓ¦ÓóÌÐò²»ÔÙÐèÒªÏàÓ¦µÄLIBÎļþ¡£ÔÚʹÓÃÍê±ÏÖ®¡¡

ºó£¬»¹Ðèµ÷ÓÃFreeLibrary£¨£©º¯ÊýÊͷżÓÔصÄDLL¡£¡¡¡¡



ÏÂÃæÎÒÃÇʹÓÃÏÔʽÁ´½ÓµÄ·½Ê½À´ÊµÏÖÇ°ÃæµÄÀý×Ó¡£¡¡¡¡



ÓÉÓÚʹÓÃÖ¸ÕëÀ´µ÷ÓÃDLLÖеĵ¼³öº¯Êý£¬ËùÒÔ±¾ÀýÖв»ÔÙÐèÒª¡¡

msgbox¡£hÎļþ¡£¡¡¡¡



ÔÚtester¡£cppÖÐÌí¼ÓµÄ´úÂëÈçÏÂËùʾ£º¡¡¡¡



#include¡¡¡¡¡¡



typedef¡¡int¡¡£¨CALLBACK*¡¡DLLFUNC£©£¨¡¡¡¡



LPCTSTR¡¡lpText=¡¨ËäÈ»Õâ¸öÀý×ÓÓÐһЩ¼òµ¥£¬µ«Ëü¹¤×÷µÃ·Ç³£µÄºÃ¡¡£¡¡¨£»¡¡¡¡



LPCTSTR¡¡lpCaption=¡¨Ò»¸ö¼òµ¥µÄÀý×Ó¡¨£»¡¡¡¡



UINT=MB_OK£©£»¡¡¡¡



int¡¡WINAPI¡¡WinMain£¨HINSTANCE¡¡hInstance£»¡¡¡¡



HINSTANCE¡¡hPrevInstance£»¡¡¡¡



LPSTR¡¡lpCmdLine£»¡¡¡¡



int¡¡nCmdShow£©¡¡¡¡



£û¡¡¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡674¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

HINSTANCE¡¡hDLL£»¡¡¡¡



DLLFUNC¡¡MsgBox£»¡¡¡¡



hDLL¡¡=¡¡LoadLibrary£¨¡¨msgbox¡¨£©£»¡¡¡¡



if¡¡£¨hDLL¡¡£¡=¡¡NULL£©¡¡¡¡



£û¡¡¡¡



MsgBox¡¡=¡¡¡¡¡¡



£¨DLLFUNC£©GetProcAddress£¨hDLL£»¡¨MsgBox¡¨£©£»¡¡¡¡



return¡¡MsgBox£¨£©£»¡¡¡¡



£ý¡¡¡¡



£ý¡¡¡¡



LoadLibrary£¨£©º¯ÊýµÄ²ÎÊýÊÇËùµ÷ÓõÄDLLµÄÃû×Ö£¬Õâ¸öÃû×Ö²»ÊÇ·ÅÈë¡¡

ÊäÈë¿âÎļþÖеÄÃû×Ö£¬¶øÊÇDLLµÄÎļþÃû¡£Èç¹ûÎļþµÄÀ©Õ¹Ãû¡¡

Ϊ¡£DLL£¬Ôò¿ÉÒÔÊ¡ÂÔ¡£¡¡¡¡



Õâ¸ö³ÌÐòµ
·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨1£© ²È£¨1£©
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿!
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæдԭ´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøŶ£¡