WTL vs MFC, Win32
WTL°ú MFC, Win32¸¦ ºñ±³ÇÏ´Â ¹®¼¸¦ ã¾Æº¸·Á°í ÀÎÅͳÝÀ» °Ë»öÇßÁö¸¸ Çѹ濡 Á¤¸®ÇØ ³õ°í ÀÖ´Â ¹®¼¸¦ ãÁö ¸øÇß½À´Ï´Ù. ÇØ¼ °Ë»öÀ» ÅëÇØ ã¾Æ³½ ¸î°¡Áö ¹®¼¿¡ ³ª¿Í ÀÖ´Â ³»¿ëÀ» ¹ßÃé/Á¤¸®ÇØ ºÃ½À´Ï´Ù.
À§ÀÇ ½ÇÇàÆÄÀÏ Å©±â ºñ±³´Â ¾î¶² ÄÚµå·Î ½ÇÇèÇß´À³Ä¿¡ µû¶ó ±¸Ã¼ÀûÀÎ ÃøÁ¤ ¼öÄ¡´Â ¸Å¿ì ´Þ¶óÁú °ÍÀÌÁö¸¸ ´ë·«ÀÇ ¿ì¿À» Win32 > WTL >> MFC À¸·Î Á¤¸®ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. (MFCÀÇ °æ¿ì µÎ ¹®¼ ¸ðµÎ static link·Î ºôµåÇÑ ¼öÄ¡ÀÔ´Ï´Ù.)
WTL for MFC Programmers, Part I - ATL GUI Classes¿¡¼´Â WTLÀ» MFC¿Í ºñ±³ÇØ Àå´ÜÁ¡À» ´ÙÀ½°ú °°ÀÌ Àû°í ÀÖ½À´Ï´Ù.
WTLÀÇ ´ÜÁ¡
* ATL ½ºÅ¸ÀÏÀÇ ÅÛÇø´ Ŭ·¡½º´Â Àͼ÷Ä¡ ¾ÊÀº »ç¿ëÀÚ°¡ Á¢±ÙÇϱâ Èûµé´Ù.
* Ŭ·¡½º À§ÀÚµå Áö¿øÀÌ µÇÁö ¾Ê´Â´Ù.
* MSDN¿¡ ¹®¼ÈµÇ¾îÀÖÁö ¾Ê´Ù.
* Âü°í¼µµ ¾ø´Ù. (Áö±ÝÀº ÀÎÅͳÝÀ» ÅëÇØ ²Ï ¸¹Àº ¹®¼¸¦ ã¾Æº¼ ¼ö ÀÖ½À´Ï´Ù.)
* ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®°¡ °ø½ÄÀûÀ¸·Î Áö¿øÇÏÁö ¾Ê´Â´Ù.
* MFC¿Í Ŭ·¡½º ¸ðµ¨ÀÌ »óÀÌÇÏ¿© WTL·Î ÀÌÀüÇϱⰡ ½±Áö ¾Ê´Ù.
WTLÀÇ ÀåÁ¡
* Doc-View ÇÁ·¡ÀÓ¿÷ÀÌ ¾ø´Ù. (MFCÀÇ Doc-View ÇÁ·¡ÀÓ¿÷À» ºÒÆíÇØ ÇÏ´Â °³¹ßÀÚ°¡ ¸¹ÁÒ? ±×·¡¼ VS.Net ¾îÇø®ÄÉÀÌ¼Ç À§Àڵ忡¼´Â Doc-View¸¦ »ç¿ëÇÏÁö ¾Ê´Â ¿É¼ÇÀÌ Á¦°øµÇ´Â °ÍÀÏ Å×±¸¿ä.)
* ±âº»ÀûÀÎ MFCÀÇ UI ±â´ÉÀ» Á¦°øÇÑ´Ù. (DDX/DDV, update command UI µî)
* ÀϺΠMFC ±â´ÉÀ» °³¼±Çß´Ù.
* ÀÛÀº Å©±âÀÇ ½ÇÇà ÆÄÀÏ Å©±â(À§¿¡¼ ¾ð±ÞÇÑ…)
* ´Ù¸¥ ¾îÇø®ÄÉÀ̼ǿ¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê°í WTLÀÇ ¹ö±× ¼öÁ¤À» Á÷Á¢ÇÒ ¼ö ÀÖ´Ù.
* MFC¿Í °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
WTLÀº ¸¶ÀÌÅ©·Î¼ÒÇÁÆ®°¡ ¸¸µç MFC¸¦ ´ëüÇÒ ¸¸ÇÑ ¿ì¼öÇÑ ¶óÀ̺귯¸®ÀÓ¿¡µµ ºÒ±¸ÇÏ°í °ø½ÄÁö¿øÀ» ÇÏÁö ¾Ê´Â °ÍÀº ¿©±â¿¡ ÀûÇôÀִµ¥·Î .NetÀ» ¹Ð±â À§ÇÑ MSÀÇ ¸¶ÄÉÆÃ Àü·«ÀÌ ¾Æ´Ò±î ½Í½À´Ï´Ù. ÀÌ ¶§¹®¿¡ WTLÀ» »ç¿ëÀÌ È®»êµÇÁö ¾Ê°í ÀÖ´Ù°í »ý°¢µË´Ï´Ù.
¾Æ¹«Æ°, WTLÀº template ¶óÀ̺귯¸®·Î¼ Win32ÀÇ ÀåÁ¡ÀÎ °æ·®(light-weight) ÇÁ·Î±×·¥À» Á¦ÀÛÇÒ ¼ö ÀÖ°í MFC¿Í °°ÀÌ Ç³ºÎÇÑ ¶óÀ̺귯¸®¸¦ Á¦°ø(»ç½Ç MFC ¸¸ÅÀº ¾ÈµÇÁö¸¸…)ÇϹǷμ »ý»ê¼ºÀ» Çâ»óÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Á¤µµµÇ¸é WTL ¾È ¾µ ÀÌÀ¯ ¾øÀ» °Í °°³×¿ä.
Win32 API »ç¿ë Èıâ
¸î °³¿ù°£ À©µµ¿ì ÇÁ·Î±×·¥À» ÀÛ¼ºÇϴµ¥ Win32 API¸¸À» °íÁýÇØ¼ »ç¿ëÇØ ºÃ½À´Ï´Ù.
WTL/ATL, MFCµîÀÇ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏÁö ¾Ê°í Win32 ¸¸À» °íÁýÇØ¼ »ç¿ëÇß´ø ÀÌÀ¯´Â
- ºü¸¥ ½ÇÇà ¼º´ÉÀ» °®´Â µ¥½ºÅ©Å¾ ¾îÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇϰí
- ÀÛÀº ¹ÙÀ̳ʸ® »çÀÌÁî¿Í mfc*.dllµî¿¡ ÀÇÁ¸ÀûÀÌÁö ¾ÊÀº ¾îÇø®ÄÉÀ̼ÇÀ» ÀÛ¼ºÇϰí
- WTL/ATL¿¡ Ä£¼÷ÇØÁö±â À§ÇØ ½Ã°£À» ÅõÀÚÇϱⰡ ½È¾ú°í
- ¶óÀ̺귯¸®¿¡¼ Ä¿¹öÇÏÁö ¸øÇÏ´Â Á¤¹ÐÇÑ Á¦¾î¸¦ À§Çؼ´Â °á±¹¿¡´Â ¾î¿ ¼ö ¾øÀÌ Win32¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù°í »ý°¢Çß°í
- À©µµ¿ì ÇÁ·Î±×·¡¹Ö°ú ½Ã½ºÅÛ¿¡ ´ëÇÑ ÀÌÇØ¸¦ º¸´Ù °ß°íÈ÷ ÇϰíÀÚ Ç߱⠶§¹®À̾ú½À´Ï´Ù.
¸î °³¿ù°£ÀÇ ÄÚµùÀÛ¾÷ ÈÄ ³»¸° °á·ÐÀº ÀÌ·¸½À´Ï´Ù.
½Ã°£ÀÌ ³Î³ÎÇÏ°í ¿©°¡¸¦ Áñ±â±âÀ§ÇØ(½Ã°£ ¶§¿ì±â À§ÇØ) ÄÚµùÇϰųª ±Ø±â ÈÆ·ÃÀ» ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó¸é Àý´ë Win32 API ¸¸À¸·Î ÄÚµùÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù !
Win32 API¸¦ Àû´çÈ÷ Ŭ·¡½º·Î ·¡ÇÎÇϰí À¯Æ¿¸®Æ¼ Ŭ·¡½º¸¦ ¸¸µå´Â µî, ¸¹Àº ½Ã°£À» ÅõÀÔÇß´ø ÀÛ¾÷µéÀº °á±¹ MFC³ª WTL/ATLÀÌ ¸¸µé¾î ³õÀº °ÍµéÀ» ´Ù½Ã ¸¸µå´Â °Í¿¡ ºÒ°úÇß½À´Ï´Ù. ¹°·Ð °á°ú¹°ÀÇ Ä÷¸®Æ¼´Â ÀÌµé ¶óÀ̺귯¸®ÀÇ Ä÷¸®Æ¼¸¦ ³Ñ¾î¼±â´Â Ä¿³ç ±×¿¡ ÈξÀ ¸ø ¹ÌÄ¡´Â °ÍÀ̾ú½À´Ï´Ù.
¸î °³¿ù°£ÀÇ »¹Áþ ³¡¿¡ ±×µ¿¾È ¹Ì·ï µÎ¾ú´ø WTLÀ» Àû±ØÀûÀ¸·Î »ç¿ëÇØ º¸°Ú´Ù°í ¸¶À½ ¸Ô¾ú½À´Ï´Ù.
¸®´ª½º ¼³Ä¡
ºñ·Ï °¡»ó PC Áö¸¸ ³»ý óÀ½ Á¦ PC¿¡ ¸®´ª½º¸¦ ¼³Ä¡Çß½À´Ï´Ù.
¸®´ª½º ¼³Ä¡°¡ ÀúÀÇ ÄÄÇ»ÅÍ »ýȰ¿¡ ¾î¶² º¯È¸¦ ÁÙ ¼ö ÀÖÀ»Áö ±â´ë°¡ µË´Ï´Ù.
STL ¿¡¼ Unicode »ç¿ë
STL Àº À¯´ÏÄڵ带 Á¦´ë·Î Áö¿øÇÏÁö ¾Ê½À´Ï´Ù. ±× ´ë´ÜÇÑ STLÀÇ ¿ÁÀÇ Æ¼(¾öû³ Ƽ)°¡ ¾Æ´Ò ¼ö ¾ø½À´Ï´Ù.
¿©±â(Upgrading an STL-based application to use Unicode.) STLÀ» »ç¿ëÇÏ´Â ¾îÇø®ÄÉÀ̼ǿ¡¼ Unicode ¸¦ Áö¿øÇϵµ·Ï ¾÷±×·¡À̵å ÇÏ´Â ¹æ¹ýÀ» Àû¾î ³õ¾Ò½À´Ï´Ù. º¸¸é ´À³¢½Ã°ÚÁö¸¸ ÂüÀ¸·Î ±¸ÁúÇÑ ÀÏÀÔ´Ï´Ù.
»ç½Ç »ý°¢Çغ¸¸é SBCS ¾ð¾î±ÇÀÇ »ç¶÷µéÀÌ Unicode °ü½ÉÀ̳ª ÀÖ°Ú½À´Ï±î… ÀÚ±â³× ÇÁ·Î±×·¥ ÆÈ¾Æº¼ ¸ñÀûÀÌ ¾Æ´Ï¸é… (¹®¼ÀÇ ÀÛ¼ºÀÚ À̸§À» º¸´Ï ¿ª½Ã³ª ÀϺ»ÀÎÀ̱º¿ä.)
Ãʺ¸ÀÚ¸¦ À§ÇÑ Ç÷¯±×ÀÎ ¾ÆÅ°ÅØÃÄ ÇÁ·¡ÀÓ¿÷
Plug-in Architecture Framework for Beginners
Ç÷¯±×ÀÎÀ̶õ ÁÖ ÇÁ·Î±×·¥(host application)À» ¼öÁ¤ÇÏÁö ¾Ê°íµµ ÁÖ ÇÁ·Î±×·¥ÀÇ ±â´ÉÀ» ¼öÁ¤Çϰųª Ãß°¡±â´ÉÀ» Á¦°øÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù. ¸¹Àº ¼öÀÇ ¼ÒÇÁÆ®¿þ¾îµéÀÌ Ç÷¯±×ÀÎÀ» ¸¸µé¾î Ãß°¡ÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾îÁ® ÀÖ½À´Ï´Ù. MS ¿ÀÇǽº¿Í ÀÌŬ¸³½º´Â ±× ´ëÇ¥ÀûÀÎ ¿¹ Áß ÇϳªÀÔ´Ï´Ù.
À§ ¹®¼¿¡¼´Â ½ÇÁ¦ ÇÁ·ÎÆä¼Å³Î ¾îÇø®ÄÉÀ̼ǿ¡ °ð¹Ù·Î Àû¿ëÇØ »ç¿ëÇϱ⿡´Â ¸¹Àº ºÎºÐÀÌ ºÎÁ·Çϰí flat DLLÀ» »ç¿ëÇÏ´Â Ãʺ¸ÀûÀÎ ¼öÁØÀÌÁö¸¸ Ç÷¯±×ÀÎ ÇÁ·¡ÀÓ¿÷À» ¾î¶»°Ô Á¦°øÇÒ °ÍÀÎÁö °í¹ÎÇÏ´Â °³¹ßÀÚ¿¡°Ô´Â ±âÃÊÀûÀÎ ¾ÆÀ̵ð¾î¸¦ ¾òÀ» ¼ö ÀÖ´Â ÁÁÀº ½ÃÀÛÁ¡ÀÌ µÉ °ÍÀÔ´Ï´Ù.