TN057: MFC ±¸¼º ¿ä¼Ò Áö¿ªÈ­

ÀÌ ³ëÆ®¿¡¼­´Â ÀϺΠµðÀÚÀÎ ¹× Áö¿ªÈ­ ±¸¼º ¿ä¼Ò, ÀÀ¿ë ÇÁ·Î±×·¥ ¶Ç´Â OLE ÄÁÆ®·Ñ ¶Ç´Â MFC¸¦ »ç¿ë ÇÏ´Â DLLÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â ÀýÂ÷¸¦ ¼³¸í¡£

°³¿ä

Á¤¸» MFC¸¦ »ç¿ë ÇÏ´Â ±¸¼º ¿ä¼Ò¸¦ Áö¿ªÈ­ ÇÏ´Â °æ¿ì¸¦ ÇØ°á Çϱâ À§ÇØ µÎ °¡Áö ¹®Á¦°¡ ÀÖ½À´Ï´Ù. ù°, ÀÚ½ÅÀÇ ¸®¼Ò½º-¹®ÀÚ¿­, ´ëÈ­ »óÀÚ ¹× ÇØ´ç ±¸¼º ¿ä¼Ò¿¡ °ü·Ã µÈ ±âŸ ¸®¼Ò½º¸¦ Áö¿ªÈ­ ÇØ¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ MFC¸¦ »ç¿ë ÇÏ ¿© ¸¸µç ´ëºÎºÐÀÇ ±¸¼º ¿ä¼Ò¸¦ Æ÷ÇÔ ÇÏ °í ´Ù¾ç ÇÑ MFC¿¡ ÀÇÇØ Á¤ÀÇ µÈ ¸®¼Ò½º¸¦ »ç¿ë ÇÏ ¿©. »Ó¸¸ ¾Æ´Ï¶ó Áö¿ªÈ­ µÈ MFC ¸®¼Ò½º¸¦ Á¦°ø ÇØ¾ß ÇÕ´Ï´Ù. MFC ÀÚü¿¡¼­ ÀÌ¹Ì Á¦°ø ÇÏ´Â ¿©·¯ °¡Áö ¾ð¾î ´ÙÇàÈ÷µµ,¡£

´ë»ó ȯ°æ¿¡¼­ ½ÇÇà µÇµµ·Ï ±¸¼º ¿ä¼Ò¸¦ Áغñ ÇØ¾ß ¶ÇÇÑ, (À¯·´, ¶Ç´Â DBCS »ç¿ë ȯ°æ). ´ëºÎºÐÀÇ °æ¿ì,ÀÌ ³ôÀº ºñÆ® ¼³Á¤ ¹®ÀÚ¸¦ ¿Ã¹Ù¸£°Ô Ä¡·á ÇÏ °í ´õºí ¹ÙÀÌÆ® ¹®ÀÚ·Î ¹®ÀÚ¿­ ó¸® ÀÀ¿ë ÇÁ·Î±×·¥¿¡ µû¶ó ´Ù¸¨´Ï´Ù. MFC µÇ¾î, ±âº»ÀûÀ¸·Î ¸ðµÎ ÀÌ·¯ÇÑ È¯°æ¿¡ ´ë ÇÑ ±×°ÍÀº ±×³É ´Ù¸¥ ¸®¼Ò½º ¼³Ä¡ ½Ã ¿¬°á ¸ðµç Ç÷§Æû¿¡¼­ »ç¿ë µÇ´Â ´ÜÀÏ "¿ùµå ¿ÍÀ̵å" ÀÌÁøÀ» °¡Áú ¼ö´Â¡£

±¸¼º ¿ä¼ÒÀÇ ¸®¼Ò½º Áö¿ªÈ­

ÀÀ¿ë ÇÁ·Î±×·¥ ¶Ç´Â DLLÀ» Áö¿ªÈ­ ´Ü¼øÈ÷ ´ë»ó ¾ð¾î¿Í ÀÏÄ¡ ÇÏ´Â ¸®¼Ò½º¿Í ¸®¼Ò½º¸¦ ±³Ã¼ ÇÏ´Â °ÍÀ» Æ÷ÇÔ ÇÑ´Ù. ´ç½ÅÀÇ ÀÚ½ÅÀÇ ¸®¼Ò½º¿¡ ´ë ÇÑ À̰ÍÀº ºñ±³Àû °£´Ü ÇÏ´Ù: ¸®¼Ò½º ÆíÁý±â¿¡¼­ ¸®¼Ò½º¸¦ ÆíÁý ÇÏ °í ÀÀ¿ë ÇÁ·Î±×·¥À» ±¸Ãà ÇÕ´Ï´Ù. ¾Æ¹« ¹®ÀÚ¿­ÀÌ ³ª ÅØ½ºÆ®¸¦ Áö¿ªÈ­ Çϵå ÄÚµù µÈ c + + ¼Ò½º ÄÚµå-¿¡ ÀÖÀ» °ÍÀÔ´Ï´Ù ±ÍÇÏÀÇ Äڵ尡 Á¦´ë·Î ÀÛ¼º µÈ °æ¿ì¿¡ ¸ðµç Áö¿ªÈ­ ´Ü¼øÈ÷ ¸®¼Ò½º¸¦ ¼öÁ¤ ÇÏ ¿© ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. »ç½Ç, ±×·± ¸ðµç Áö¿ªÈ­ µÈ ¹öÀüÀ» Á¦°ø ÇÏ´õ¶óµµ ¿ø·¡ ÄÚµåÀÇ ÀÛ¼ºÀºµµ Æ÷ÇÔ ÇÏÁö ¾Ê´Â ±¸¼º ¿ä¼Ò¸¦ ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ´õ º¹Àâ ÇÏÁö¸¸ ±×¸¸ÇÑ °¡Ä¡°¡ °í MFC ÀÚü¿¡ ´ë ÇÑ ¼±Åà ÇÏ´Â ¸ÞÄ¿´ÏÁòÀÔ´Ï´Ù. ¶ÇÇÑ ¸®¼Ò½º ÆíÁý±â¿¡ EXE ¶Ç´Â DLL ÆÄÀÏÀ» ·Îµå ÇÏ °í ¸®¼Ò½º¸¦ Á÷Á¢ ÆíÁý ÇÏ ¿© ÀÀ¿ë ÇÁ·Î±×·¥À» Áö¿ªÈ­ ÇÏ´Â °ÍÀÌ ºÒ°¡´É ÇÕ´Ï´Ù. ±×·¯³ªÀÌ ¿ä±¸ »çÇ× ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ »õ ¹öÀüÀ» ÀÛ¼ºÇÒ ¶§¸¶´Ù ÀçȰ¿ë ÇÏ´Â °ÍÀÌ ±×°ÍÀÌ °¡´É¡£

¹æÁö ÇÏ´Â ÇÑ °¡Áö ¹æ¹ýÀº À§¼º DLLÀÌ ¶ó°íµµ ÇÏ´Â º°µµ DLLÀÇ ¸ðµç ¸®¼Ò½º¸¦ ãÀ» °Í. ´ÙÀ½ÀÌ DLLÀº ·±Å¸ÀÓ ½Ã¿¡ µ¿ÀûÀ¸·Î ·Îµå ¹× ¸®¼Ò½º¸¦ ±ÍÇÏÀÇ ÄÚµå¿Í ÇÔ²² ÁÖ¿ä ¸ðµâ¿¡¼­ ´ë½Å DLL¿¡¼­ ·Îµå µË´Ï´Ù. MFC´Â Á÷Á¢ÀÌ ¹æ¹ýÀ» Áö¿øÇÕ´Ï´Ù. MYAPP ¶ó´Â ÀÀ¿ë ÇÁ·Î±×·¥À» °í·Á ÇÕ´Ï´Ù.EXE; ±×°ÍÀº ¸ðµÎ MYRES ¶ó´Â DLL¿¡ ÀÖ´Â ¸®¼Ò½º¸¦°¡Áö°í ÀÖ´Ù.DLL. ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ÀÇ InitInstance ÇØ´ç DLLÀ» ·Îµå ÇÏ °í ÇØ´ç À§Ä¡¿¡¼­ ¸®¼Ò½º¸¦ ·Îµå ÇÏ´Â MFC¸¦ ¹ß»ýÀ» ´ÙÀ½À» ¼öÇà ÇÏ´Â °ÍÀÌ:

CMyApp::InitInstance()
{
/ / ÃʱâÈ­ Äڵ忡¼­ ù ¹øÂ° »ç¹°ÀÇ
HINSTANCE hInst = LoadLibrary("myres.dll");
°æ¿ì (hInst! = NULL)
AfxSetResourceHandle(hInst);

/ / ±âŸ ÃʱâÈ­ Äڵ忡 µû¶ó
.
.
.
}

´ÙÀ½¿¡¼­ MFC myapp.exe¿¡¼­ ´ë½Å DLL¿¡¼­ ¸®¼Ò½º¸¦ ·Îµå ÇÕ´Ï´Ù. ±×·¯³ª ¸ðµç ¸®¼Ò½º¸¦ ÀÖ¾î¾ß ±× DLL-MFC ÁÖ¾îÁøµÈ ÀÚ¿øÀÇ °Ë»ö ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ÀνºÅϽº¸¦ °Ë»ö ÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ±â¼úÀº OLE ÄÁÆ®·Ñ »Ó¸¸ ¾Æ´Ï¶ó µ¿µî ÇÏ °Ô Àß ÀÏ¹Ý Dll¿¡ Àû¿ë µË´Ï´Ù. ¼³Ä¡ ÇÁ·Î±×·¥ MYRESÀÇ ÀûÀý ÇÑ ¹öÀüÀ» º¹»çÇÒ °Í ÀÌ´Ù.»ç¿ëÀÚ´Â ¸®¼Ò½ºÀÇ ·ÎÄÉÀÏ¿¡ µû¶ó DLL ½Í½À´Ï´Ù.

±×°ÍÀº »ó´ëÀûÀ¸·Î ½±°Ô ¸¸µé ¸®¼Ò½º Àü¿ë DLL. DLL ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé°í, Ãß°¡.RC ÆÄÀÏ, ±×°ÍÀ» ÇÏ °í ÇÊ¿äÇÑ ¸®¼Ò½º¸¦ Ãß°¡ ÇÕ´Ï´Ù. ¸¸¾à ´ç½ÅÀÌÀÌ ±â¼úÀ» »ç¿ë ÇÏÁö ¾Ê´Â ±âÁ¸ ÇÁ·ÎÁ§Æ®, ÇØ´ç ÇÁ·ÎÁ§Æ®¿¡¼­ ¸®¼Ò½º¸¦ º¹»çÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÁ·ÎÁ§Æ®¿¡ ¸®¼Ò½º ÆÄÀÏÀ» Ãß°¡ÇÑ ÈÄ ÇÁ·ÎÁ§Æ®¸¦ ºôµåÇÒ Áغñ°¡ °ÅÀÇ ÀÖ½À´Ï´Ù. ´ç½ÅÀÌ ÇØ¾ß ÇÒ À¯ÀÏÇÑ °ÍÀº ¸µÄ¿¿¡ /NOENTRY¸¦ Æ÷ÇÔ Çϵµ·Ï ¿É¼Ç ¼³Á¤ÀÔ´Ï´Ù. ÀÌ·¸°Ô ¸µÄ¿°¡ DLL ÁøÀÔÁ¡-°¡ ¾ø´Â ÁøÀÔÁ¡Àº ¾Æ¹« ÄÚµå ÀÌÈÄ¡£

¸Þ¸ðnbsp;??¸®¼Ò½º ÆíÁý±â Visual c + + 4.0 ÀÌ»ó°ú ´ç ¿©·¯ ¾ð¾î¸¦ Áö¿ø ÇÕ´Ï´Ù.RC ÆÄÀÏÀÔ´Ï´Ù. ÀÌ ´ÜÀÏ ÇÁ·ÎÁ§Æ®¿¡¼­ Áö¿ªÈ­ °ü¸® ÇÏ±â ¸Å¿ì ½¬¿î ±×°ÍÀ» ¸¸µé ¼ö ÀÖ½À´Ï´Ù. °¢ ¾ð¾î¿¡ ´ë ÇÑ ¸®¼Ò½º°¡ ¸®¼Ò½º ÆíÁý±â¿¡ ÀÇÇØ »ý¼º µÈ Àü󸮱â Áö½Ã¹®¿¡ ÀÇÇØ Á¦¾î µË´Ï´Ù(&N).

Á¦°ø µÈ MFC¸¦ »ç¿ë ÇÏ ¿© Áö¿ªÈ­ ¸®¼Ò½º

ºôµåÇÒ ¸ðµç MFC ÀÀ¿ë ÇÁ·Î±×·¥ re-uses MFC¿¡¼­ µÎ °¡Áö: ÄÚµå ¹× ¸®¼Ò½º. Áï, MFC´Â ´Ù¾ç ÇÑ ¿À·ù ¸Þ½ÃÁö, ±âº» Á¦°ø ´ëÈ­ »óÀÚ ¹× MFC Ŭ·¡½º¿¡¼­ »ç¿ë µÇ´Â ±âŸ ¸®¼Ò½º. ÀÀ¿ë ÇÁ·Î±×·¥À» ¿ÏÀüÈ÷ Áö¿ªÈ­ Çϱâ À§Çؼ­´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¸®¼Ò½º, »Ó¸¸ ¾Æ´Ï¶ó MFC¿¡¼­ Á÷Á¢ Á¦°ø ÇÏ´Â ¸®¼Ò½º¸¦ Áö¿ªÈ­ ÇØ¾ß ÇÕ´Ï´Ù. MFC Á¦°ø ´Ù¾ç ÇÑ ´Ù¸¥ ¾ð¾î ¸®¼Ò½º ÆÄÀÏ ÀÚµ¿À¸·Î, ±×·¡¼­¸¦ Ÿ°ÙÆÃ ÇÏ´Â ¾ð¾î MFC¿¡¼­ ÀÌ¹Ì Áö¿ø ¾ð¾î Áß Çϳª ÀÌ¸é ±×³É ÇØ¾ß ÀÌ·¯ÇÑ Áö¿ªÈ­ µÈ ¸®¼Ò½º¸¦ »ç¿ë ÇÏ ¿© ÀÖ´ÂÁö È®ÀÎ ÇϽʽÿÀ.

MFC Áö¿øÀÌ ±ÛÀ»ÀÌ ¾²´Â Áß Çϳª·Î ¼­: Áß±¹¾î, µ¶ÀϾî, ½ºÆäÀξî, ÇÁ¶û½º¾î, ÀÌÅ»¸®¾Æ¾î, ÀϺ»¾î ¹× Çѱ¹¾î. ÀÌ·¯ÇÑ Áö¿ªÈ­ µÈ ¹öÀüÀ» Æ÷ÇÔ ÇÏ´Â ÆÄÀÏÀº MFC\INCLUDE\L.*¿¡ ÀÖ½À´Ï´Ù ('L'¿¡ ´ë ÇÑ Áö¿ªÈ­ÀÇ ¾àÀÚ) µð·ºÅ͸®. µ¶ÀÏ ÆÄÀÏ MFC\INCLUDE\L.DEU, ¿¹¸¦ µé¾î ÀÖ½À´Ï´Ù. ´Ü¼øÈ÷ Ãß°¡ MFC\INCLUDE¿¡ ÀÖ´Â ÆÄÀÏ ´ë½ÅÀÌ RC ÆÄÀÏÀ» »ç¿ë Çϵµ·Ï ÀÀ¿ë ÇÁ·Î±×·¥À» ¹ß»ý ÇÏ´Â /IC:\PROGRAM FILES\DEVSTUDIO\VC\MFC\INCLUDE\L.DEU RC Ä¿¸Çµå ¶óÀο¡ (À̰ÍÀº ´ÜÁö ¿¹Á¦-Visual c + +¸¦ ¼³Ä¡ÇÑ µð·ºÅ͸® ¼±ÅÃÀÇ ·ÎĶÀ» ´ëü ÇØ¾ß)¡£

À§ÀÇ ÁöħÀº ÀÀ¿ë ÇÁ·Î±×·¥ MFC¿Í Á¤ÀûÀ¸·Î ¸µÅ© ÇÏ´Â °æ¿ì ÀÛµ¿ ÇÕ´Ï´Ù. ´ëºÎºÐÀÇ ÀÀ¿ë ÇÁ·Î±×·¥ ¸µÅ©¸¦ µ¿ÀûÀ¸·Î (±× ÀÌÀ¯´Â AppWizard ±âº»°ª). ÀÌ ½Ã³ª¸®¿À¿¡¼­ »Ó¸¸ ¾Æ´Ï¶ó ÄÚµå´Â µ¿ÀûÀ¸·Î ¸®¼Ò½º µÇ¹Ç·Î ¿¬°á. ±× °á°ú, ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ¸®¼Ò½º¸¦ Áö¿ªÈ­ÇÒ ¼ö ÀÖÁö¸¸ MFC ±¸Çö ¸®¼Ò½º ¿©ÀüÈ÷ ·Îµå µË´Ï´Ù ¶Ç´Â mfc4xloc.dll´Â MFC4x.DLL (¶Ç´Â ÀÌÈÄ ¹öÀü)¿¡¼­ Á¸Àç ÇÏ´Â °æ¿ì. ÀÌ µÎ °³ÀÇ ¼­·Î ´Ù¸¥ °¢µµ¿¡¼­ Á¢±Ù ¼ö ÀÖ½À´Ï´Ù.

±â´É¸¸ Professional ¹× Enterprise Edition¿¡nbsp;??Mfc Á¤Àû ¸µÅ© ±â´ÉÀÌ Visual c + + Professional ¹× Enterprise Edition¿¡¸¸ Áö¿ø µË´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº ÂüÁ¶ Visual c + + ¹öÀü(&N)¡£

´õ º¹Àâ ÇÑ Á¢±Ù ¿ìÁÖ¼± Áö¿ªÈ­ µÈ MFC4xLOC.DLLs Áß Çϳª (¿¹: MFC4xDEU, µ¶ÀϾî, ½ºÆäÀξî, µîµî¿¡ ´ë ÇÑ MFC4xESP.DLL), ¶Ç´Â ÃֽйöÀü ÀÌ¸ç »ç¿ëÀÚ°¡ ÀÀ¿ë ÇÁ·Î±×·¥À» ¼³Ä¡ÇÒ ¶§ ½Ã½ºÅÛ µð·ºÅ͸®¿¡ ÀûÀý ÇÑ mfc4xloc.dll¸¦ ¼³Ä¡ ÇÕ´Ï´Ù. ÀÌ °³¹ßÀÚ¿Í ÃÖÁ¾ »ç¿ëÀÚ ¸ðµÎ¿¡ ´ë ÇÑ ¸Å¿ì º¹Àâ ÇØÁú ¼ö ÀÖ½À´Ï´Ù¿Í °°Àº ±ÇÀå ÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ±â¼ú ¹× ±×°ÍÀÇ ÁÖÀÇ »çÇ׿¡ ´ë ÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ±â¼ú ³ëÆ® 56 ÂüÁ¶¡£

°£´Ü ÇÏ °í ¾ÈÀüÇÑ ¹æ¹ýÀº Çϳª¸¦ »ç¿ë ÇÏ´Â °æ¿ì ÀÀ¿ë ÇÁ·Î±×·¥ ¶Ç´Â ÀÚü (¶Ç´Â ÇØ´ç À§¼º DLL) DLL¿¡ Áö¿ªÈ­ µÈ MFC ¸®¼Ò½º¸¦ Æ÷ÇÔ ÇÏ´Â °Í. ÀÌ mfc4xloc.dll¸¦ Á¦´ë·Î ¼³Ä¡ ÇÏ´Â ¹®Á¦¸¦ ¹æÁöÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·¸°Ô ÇÏ·Á¸é Á¤Àû °æ¿ì (RC Ä¿¸Çµå ¶óÀÎ ¿Ã¹Ù¸£°Ô Áö¿ªÈ­ µÈ ¸®¼Ò½º¸¦ °¡¸®Å°µµ·Ï ¼³Á¤) À§ÀÇ °°Àº ÁöħÀ» µû¸£½Ê½Ã¿À, ´ç½ÅÀº ¶ÇÇÑ Á¦°Å ÇØ¾ß ÇÕ´Ï´Ù Á¦¿Ü ÇÕ´Ï´Ù /D_AFXDLL ´Â Á¤ÀÇ Appwizard¿¡ ÀÇÇØ Ãß°¡ µÇ¾ú½À´Ï´Ù. ¶§ /D_AFXDLL Àº AFXRESÀ» Á¤ÀÇ ÇÕ´Ï´Ù.H (¹× ´Ù¸¥ MFC RC ÆÄÀÏ) ÇÏÁö ½ÇÁ¦·Î ¾î¶² ¸®¼Ò½º Á¤ÀÇ (¿Ö³ÄÇÏ¸é ±×µéÀº MFC Dll¿¡¼­ ´ë½Å ¿À°Ô µÉ °ÍÀÔ´Ï´Ù)¡£

±â¼ú ³ëÆ® ¹øÈ£·Î |nbsp; Ä«Å×°í¸®º° ±â¼ú ³ëÆ®(&N)

Index