°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·ҳ£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
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¡¡ÏµÍ³Ô¤°²×°µ