·¢²¼Ê±¼ä : ÐÇÆÚÁù ÎÄÕ±ÏÒµÂÛÎÄ - VC++»·¾³ÏµĶ¯Ì¬Á´½Ó¿âµÄ¿ª·¢ÓëÓ¦ÓøüÐÂÍê±Ï¿ªÊ¼ÔĶÁ2515b5df50e2524de5187e15
VC++»·¾³Ï¶¯Ì¬Á´½Ó¿âµÄ¿ª·¢¼°Ó¦ÓÃ
Èý¡¢MFC¹æÔò¶¯Ì¬Á´½Ó¿âµÄ´´½¨
3.1. ¸ÅÊö
£¨1£© MFC¹æÔòDLL£¬¹ËÃû˼Ò壬¿ÉÒÔÔÚÕâÖÖDLLµÄÄÚ²¿Ê¹ÓÃMFC£»
£¨2£© ËüÊǹæÔòµÄ£¬Òâζ×ÅËü²»Í¬ÓÚMFCÀ©Õ¹DLL£¬ÔÚMFC¹æÔòDLLµÄÄÚ²¿ËäÈ»¿ÉÒÔʹÓÃMFC£¬µ«ÊÇÆäÓëÓ¦ÓóÌÐòµÄ½Ó¿Ú²»ÄÜÊÇMFC¡£¶øMFCÀ©Õ¹DLLÓëÓ¦ÓóÌÐòµÄ½Ó¿Ú¿ÉÒÔÊÇMFC£¬¿ÉÒÔ´ÓMFCÀ©Õ¹DLLÖе¼³öÒ»¸öMFCÀàµÄÅÉÉúÀà¡£MFC¹æÔòDLLÄܹ»±»ËùÓÐÖ§³ÖDLL¼¼ÊõµÄÓïÑÔËù±àдµÄÓ¦ÓóÌÐòµ÷Ó㬵±È»Ò²°üÀ¨Ê¹ÓÃMFCµÄÓ¦ÓóÌÐò¡£ÔÚÕâÖÖ¶¯Ì¬Á¬½Ó¿âÖУ¬°üº¬Ò»¸ö´ÓCWinApp¼Ì³ÐÏÂÀ´µÄÀ࣬DllMainº¯ÊýÔòÓÉMFC×Ô¶¯Ìṩ¡£
3.2. MFC¹æÔòDLL·ÖΪÁ½Àࣺ
£¨1£© ¾²Ì¬Á´½Óµ½MFC µÄ¹æÔòDLL
¾²Ì¬Á´½Óµ½MFCµÄ¹æÔòDLLÓëMFC¿â£¨°üÀ¨MFCÀ©Õ¹ DLL£©¾²Ì¬Á´½Ó£¬½«MFC¿âµÄ´úÂëÖ±½ÓÉú³ÉÔÚ.dllÎļþÖС£ÔÚµ÷ÓÃÕâÖÖDLLµÄ½Ó¿Úʱ£¬MFCʹÓÃDLLµÄ×ÊÔ´¡£Òò´Ë£¬ÔÚ¾²Ì¬Á´½Óµ½MFC µÄ¹æÔòDLLÖв»ÐèÒª½øÐÐÄ£¿é״̬µÄÇл»¡£Ê¹ÓÃÕâÖÖ·½·¨Éú³ÉµÄ¹æÔòDLLÆä³ÌÐò½Ï´ó£¬Ò²¿ÉÄÜ°üº¬Öظ´µÄ´úÂë¡£
£¨2£© ¶¯Ì¬Á´½Óµ½MFC µÄ¹æÔòDLL
¶¯Ì¬Á´½Óµ½MFC µÄ¹æÔòDLL ¿ÉÒÔºÍʹÓÃËüµÄ¿ÉÖ´ÐÐÎļþͬʱ¶¯Ì¬Á´½Óµ½ MFC DLL ºÍÈκÎMFCÀ©Õ¹ DLL¡£ÔÚʹÓÃÁËMFC¹²Ïí¿âµÄʱºò£¬Ä¬ÈÏÇé¿öÏ£¬MFCʹÓÃÖ÷Ó¦ÓóÌÐòµÄ×ÊÔ´¾ä±úÀ´¼ÓÔØ×ÊÔ´Ä£°å¡£ÕâÑù£¬µ±DLLºÍÓ¦ÓóÌÐòÖдæÔÚÏàͬIDµÄ×ÊԴʱ£¨¼´ËùνµÄ×ÊÔ´Öظ´ÎÊÌ⣩£¬ÏµÍ³¿ÉÄܲ»ÄÜ»ñµÃÕýÈ·µÄ×ÊÔ´¡£Òò´Ë£¬¶ÔÓÚ¹²ÏíMFC DLLµÄ¹æÔòDLL£¬ÎÒÃDZØÐë½øÐÐÄ£¿éÇл»ÒÔʹµÃMFCÄܹ»ÕÒµ½ÕýÈ·µÄ×ÊÔ´Ä£°å¡£
ÎÒÃÇ¿ÉÒÔÔÚVisual C++ÖÐÉèÖÃMFC¹æÔòDLLÊǾ²Ì¬Á´½Óµ½MFC DLL»¹ÊǶ¯Ì¬Á´½Óµ½MFC DLL¡£ÈçÏÂͼ£¬ÒÀ´ÎÑ¡ÔñVisual C++µÄproject -> Settings -> General²Ëµ¥»òÑ¡ÏÔÚMicrosoft Foundation ClassesÖнøÐÐÉèÖá£
13
VC++»·¾³Ï¶¯Ì¬Á´½Ó¿âµÄ¿ª·¢¼°Ó¦ÓÃ
ͼ 3-2-1 ÉèÖö¯Ì¬/¾²Ì¬Á´½ÓMFC DLL
3.3. MFC¹æÔòDLLµÄ´´½¨
ÏÂÃæÒ»²½²½½²ÊöʹÓÃMFCÏòµ¼´´½¨Ò»¸ö¼òµ¥µÄMFC¹æÔòDLLµÄ¹ý³Ì¡£ £¨1£©Ê×ÏÈÔÚVisual C++6.0¿ª·¢»·¾³Ï£¬´ò¿ªFile/New/ProjectÑ¡ÏѡÔñMFC AppWizard(dll)´´½¨Ò»¸ö¼òµ¥DLL¹¤³Ì£¬²¢ÃüÃûΪ¡°regularDll¡±¡£
ͼ 3-3-1 ´´½¨MFC¹æÔòDLL
µã»÷¡°È·¶¨¡±½øÈëÈçÏÂͼËùʾµÄ¶Ô»°¿ò£¬Ñ¡Ôñ¡°¶¯Ì¬Á´½Ó¿âºÍMFC¾²Ì¬Á´½Ó¡±
14
VC++»·¾³Ï¶¯Ì¬Á´½Ó¿âµÄ¿ª·¢¼°Ó¦ÓÃ
ͼ 3-3-2 ´´½¨MFC¹æÔòDLL
µã»÷¡°Íê³É¡±°´Å¥Íê³ÉÏòµ¼¡£
£¨2£©ÔÚ¹¤³ÌÖÐÌí¼ÓÒ»¸ö¶Ô»°¿ò£¬²¢Éè¼Æ¸Ã¶Ô»°¿ò¡£
ͼ 3-3-3 ´´½¨¶Ô»°¿ò
Ϊ¸Ã¶Ô»°¿òн¨Ò»¸öÀàCDllDialog£¬
15
VC++»·¾³Ï¶¯Ì¬Á´½Ó¿âµÄ¿ª·¢¼°Ó¦ÓÃ
ͼ 3-3-4 н¨ÀàCDllDialog
Ϊ¶Ô»°¿òÉϵİ´Å¥¡°MFC Regualr Dll¡±Ìí¼ÓÏûÏ¢ÏìÓ¦º¯Êý£¬
ͼ 3-3-5 Ìí¼ÓÏûÏ¢ÏìÓ¦º¯Êý
16