6.WTL È°¿ë

°¡.Win32

WTLÀº ´Ü¼øÇÑ ¶óÀ̺귯¸®ÀÏ »ÓÀ̹ǷΠµüÈ÷ ¿ëµµ°¡ °íÁ¤µÇ¾î ÀÖÁö ¾ÊÀ¸¸ç ÇÊ¿äÇÑ ¸ðµç °÷¿¡¼­ È°¿ëÇÒ ¼ö ÀÖ´Ù. ÇÁ·ÎÁ§Æ® ÀÚü¸¦ WTL ¸¶¹ý»ç·Î »ý¼ºÇÏÁö ¾Ê¾Ò´õ¶óµµ ÀϺΠÄڵ常 WTL·Î ÀÛ¼ºÇÏ´Â °Íµµ °¡´ÉÇÏ´Ù.

 

¿¹ Á¦ : Win32WTL

¸ÕÀú °¡Àå ´Ü¼øÇÑ ÇüÅÂÀÎ Win32 ÇÁ·ÎÁ§Æ®¿¡ WTLÀ» È°¿ëÇØ º¸ÀÚ. »õ ÇÁ·ÎÁ§Æ® ´ëÈ­»óÀÚ¿¡¼­ Win32/Win32 ÇÁ·ÎÁ§Æ®¸¦ ¼±ÅÃÇÏ°í À̸§Àº Win32WTL·Î ÁöÁ¤ÇÑ´Ù.

ºó ÇÁ·ÎÁ§Æ® ¿É¼ÇÀ» ¼±ÅÃÇÑ ÈÄ CPP ÆÄÀÏ Ãß°¡ÇÏ°í ÀϹÝÀûÀ¸·Î ¸¹ÀÌ »ç¿ëµÇ´Â ½ÃÀÛ ÆÄÀÏÀ» º¹»çÇØ ºÙ¿© ³Ö´Â´Ù. ½ÃÀÛ ÆÄÀÏÀº º» »çÀÌÆ®¿¡¼­µµ ½±°Ô ±¸ÇÒ ¼ö Àִµ¥ ApiStart.cpp¶ó´Â ÇüÅ·Π¹èÆ÷µÈ´Ù. WinMainÀº °Çµå¸± ÇÊ¿ä¾øÀÌ WndProcÀÇ WM_PAINT¿¡¸¸ Äڵ带 ÀÛ¼ºÇß´Ù.

 

#include "atlbase.h"

#include "atlapp.h"

#include "atlmisc.h"

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)

{

     switch (iMessage) {

     case WM_CREATE:

          hWndMain=hWnd;

          return 0;

     case WM_PAINT:

          {

          CPaintDC dc(hWnd);

 

          CRect rt;

          rt.SetRect(10,10,250,100);

          CString str=TEXT("û»êÀº ³ª¸¦ º¸°í ¸»¾øÀÌ »ì¶ó ÇÏ°í")

              TEXT("â°øÀº ³ª¸¦ Àâ°í Ƽ¾øÀÌ »ì¶ó ÇÏ³× »ç¶ûµµ ¹þ¾î ³õ°í ¹Ì¿òµµ ¹þ¾î ³õ°í")

              TEXT("¹°°°ÀÌ ¹Ù¶÷°°ÀÌ »ì´Ù°¡ °¡¶ó Çϳ×");

          dc.DrawText(str,-1,&rt,DT_WORDBREAK);

          return 0;

          }

     case WM_DESTROY:

          PostQuitMessage(0);

          return 0;

     }

     return(DefWindowProc(hWnd,iMessage,wParam,lParam));

}

 

¾Õ¿¡¼­ ÀÛ¼ºÇß´ø WTL Äڵ带 WM_PAINT ºí·Ï¿¡ ±×´ë·Î ºÙ¿© ³Ö¾ú´Ù. ´Ü, Áö¿ª °´Ã¼´Â caseºí·Ï¿¡¼­ ÃʱâÈ­µÇÁö ¸øÇϹǷΠ{ }·Î ºí·ÏÀ» °¨½Î¾ß ÇÑ´Ù. ÀÌ Äڵ尡 Á¦´ë·Î µ¿ÀÛÇϱâ À§Çؼ­´Â ÇÊ¿äÇÑ Çì´õ ÆÄÀÏÀ» Æ÷ÇÔ½ÃÄÑ¾ß ÇÑ´Ù. atlbase.h¿Í atlapp.h´Â ¹«Á¶°Ç Æ÷ÇÔ½ÃÄÑ¾ß ÇÏ°í ±× ¿Ü ÇÊ¿äÇÑ Çì´õ ÆÄÀÏÀ» Æ÷ÇÔÇ쵂 ÀÌ ¿¹Á¦´Â CRect, CString µîÀÇ À¯Æ¿¸®Æ¼ Ŭ·¡½º¸¦ »ç¿ëÇϹǷΠatlmisc.hµµ Æ÷ÇÔÇØ¾ß ÇÑ´Ù.

±× ¿Ü Ưº°ÇÑ ÁÖÀÇ »çÇ×Àº ¾ø´Ù. WTLÀÇ ¸ðµç Ŭ·¡½º´Â WTL ³×ÀÓ½ºÆäÀ̽º¿¡ Á¤ÀǵǾî ÀÖÁö¸¸ Çì´õ ÆÄÀϳ»¿¡ using ½ã¾ðÀÌ µÇ¾î ÀÖÀ¸¹Ç·Î WTL::À» ºÙÀÌÁö ¾Ê¾Æµµ °ð¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÅÛÇø´À¸·Î Á¤ÀǵǾî ÀÖÀ» »Ó ±×³É C++ Ŭ·¡½ºÀÏ »ÓÀ̹ǷΠC++ ¹®¹ý¿¡ ¸Â°Ô¸¸ »ç¿ëÇÏ¸é µÈ´Ù.

¹°·Ð Win32 ÇÁ·ÎÁ§Æ®¿¡¼­ WTLÀ» ±»ÀÌ »ç¿ëÇØ¾ß ÇÒ ÀÌÀ¯´Â ¾ø´Ù. ÇÏÁö¸¸ WTL·Î ¸¸µç ¸ðµâÀ̳ª ÄÚµå Á¶°¢À» ÀçÈ°¿ëÇÏ°íÀÚ ÇÒ ¶§´Â ¾ðÁ¦µçÁö È¥ÇÕ ÇÁ·Î±×·¡¹ÖÀÌ °¡´ÉÇÏ´Ù. C Çü½ÄÀÇ Win32¿¡¼­µµ CStringÀ» ¾µ ¼ö ÀÖ´Ù´Â °ÍÀº Âü ¸ÚÁø ÀÏÀÌ´Ù. Çϱä CStringÀÌ ¾Æ´Ï¶óµµ string °°Àº ¸ÚÁø Ŭ·¡½º°¡ C++ Ç¥ÁØ¿¡ ÀÌ¹Ì Á¤ÀǵǾî ÀÖ¾î ¿äÁòÀº °øÂ¥·Î ¾µ ¼ö ÀÖ´Â Äڵ尡 ³Î¸° ¼ÀÀÌ´Ù.

³ª.MFC

MFC¿¡¼­ WTLÀ» »ç¿ëÇÏ´Â °ÍÀº Win32¿¡¼­Ã³·³ ½±Áö ¾Ê´Ù. MFC°¡ WTLÀÇ ½´ÆÛ¼ÂÀε¥ °ú¿¬ MFC¿¡¼­ WTLÀ» ¾µ ÀÏÀÌ ÀÖÀ»±î ½Í°ÚÁö¸¸ ½Ç¹«¿¡¼­´Â ÀÖ´Ù. ÆÀ ÇÁ·ÎÁ§Æ®¸¦ ÇÏ´Ù º¸¸é MFC·Î ÁøÇàÁßÀÎ ÇÁ·ÎÁ§Æ®¿¡ WTL·Î ¸¸µç ÄÁÆ®·ÑÀ» ºÙ¿©¾ß Çϱ⵵ ÇÑ´Ù. ºñ½ÁÇÑ µÎ ¶óÀ̺귯¸®¸¦ °°ÀÌ ¾²ÀÚ¸é ÀÏ´ÜÀº ¸íĪ Ãæµ¹ÀÌ ºó¹øÇؼ­ °ñÄ¡°¡ ¾ÆÇÁ¸ç ±× ¿Ü¿¡µµ ¼³¸íÇϱ⠾î·Á¿î ¿©·¯ °¡Áö ¹®Á¦°¡ ¹ß»ýÇÑ´Ù.

°¡±ÞÀûÀ̸é MFC¿Í WTLÀº °°Àº ÇÁ·ÎÁ§Æ®¿¡¼­ ¾²Áö ¾Ê´Â °ÍÀÌ ÁÁ´Ù. ÇÁ·ÎÁ§Æ® ÃʱâºÎÅÍ °³¹ßÅøÀ» ÅëÀϽÃÄÑ¾ß Çϴµ¥ ±×·¸Áö ¸øÇϸé ÀÌ·± ±ÍÂúÀº ÀÏÀÌ ¹ß»ýÇÑ´Ù. ƯÈ÷ Çù·Â ȸ»ç°£¿¡ °øµ¿ ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÒ ¶§ ÀÌ·± ÀÏÀÌ ºó¹øÇÏ´Ù. ¹Ù¶÷Á÷ÇÏÁö´Â ¾ÊÁö¸¸ MFC¿Í WTLÀ» °°ÀÌ »ç¿ëÇØ¾ß ÇÒ ºÒ°¡ÇÇÇÑ °æ¿ì°¡ ÀÖÀ¸¹Ç·Î ¾î¶² »çÇ×À» ÁÖÀÇÇØ¾ß ÇÏ´ÂÁö ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé¾î º¸ÀÚ.

 

¿¹ Á¦ : MFCWTL

SDI ¿É¼Ç¸¸ ¼±ÅÃÇÏ°í ³ª¸ÓÁö´Â ¸ðµÎ µðÆúÆ® ¿É¼ÇÀ» ÃëÇÑ´Ù. º¹ÀâÇÑ ÄÚµå ¾µ ÇÊ¿ä¾øÀÌ ¸¶¿ì½º ¿ÞÂÊ ¹öÆ° ´©¸¦ ¶§ Ÿ¿ø Çϳª¸¸ ±×·Á º¸ÀÚ. MFC¿¡¼­´Â ´ÙÀ½ ÄÚµå¸é µÈ´Ù.

 

void CMFCWTLView::OnLButtonDown(UINT nFlags, CPoint point)

{

     CClientDC dc(this);

     dc.Ellipse(point.x-16, point.y-16, point.x+16, point.y+16);

}

 

WTLÀÇ Äڵ嵵 ºñ½ÁÇÏÁö¸¸ CClientDCÀÇ »ý¼ºÀÚ·Î Àü´ÞµÇ´Â °ÍÀÌ °´Ã¼°¡ ¾Æ´Ï¶ó À©µµ¿ì ÇÚµéÀ̶ó´Â Á¡ÀÌ ´Ù¸£´Ù. WTLÀ» ¾²±â À§ÇØ Çì´õ ÆÄÀÏÀº ÀÎŬ·çµåÇØ¾ß ÇÑ´Ù.

 

#include "atlbase.h"

#include "atlapp.h"

void CMFCWTLView::OnLButtonDown(UINT nFlags, CPoint point)

{

     CClientDC dc(m_hWnd);

     dc.Ellipse(point.x-16, point.y-16, point.x+16, point.y+16);

}

 

ÄÄÆÄÀÏÇØ º¸¸é CClientDC°¡ ¸ðÈ£ÇÏ´Ù´Â ¿¡·¯°¡ ¹ß»ýÇÏ¸ç »ý¼ºÀÚÀÇ Àμö·Î ÇÚµéÀ» ³Ñ±æ ¼ö ¾ø´Ù´Â ¿¡·¯µµ ¹ß»ýÇÑ´Ù. ÀÌ Å¬·¡½º°¡ MFC¿¡¼­µµ ÀÖ°í WTL¿¡µµ Àֱ⠶§¹®¿¡ ¾î´À ¶óÀ̺귯¸®ÀÇ Å¬·¡½º¸¦ »ç¿ëÇØ¾ß ÇÒÁö ÄÄÆÄÀÏ·¯°¡ Á¤½ÅÀ» Â÷¸®Áö ¸øÇÑ´Ù. ÀÌ ¿Ü¿¡ CString, CBrush µîÀÇ ¸íĪµéµµ »ç¿ëÇÏ¸é ¸ðÈ£ÇÏ´Ù´Â ¿¡·¯°¡ ¹ß»ýÇÑ´Ù. ÀÌ ¸ðµç ¹®Á¦´Â ¸íĪ Ãæµ¹¿¡¼­ ¹ß»ýÇÑ °ÍÀÌ´Ù. WTL Çì´õ ÆÄÀÏ atlapp.h¸¦ º¸¸é ´ÙÀ½ Äڵ尡 ÀÖ´Ù.

 

#ifndef _WTL_NO_AUTOMATIC_NAMESPACE

using namespace WTL;

#endif // !_WTL_NO_AUTOMATIC_NAMESPACE

 

Çì´õ ÆÄÀÏ¿¡¼­ WTL ³×ÀÓ½ºÆäÀ̽º¸¦ using ¼±¾ðÇÏÀ¸¹Ç·Î WTLÀÇ ¸ðµç ¸íĪÀÌ Àü¿ª ³×ÀÓ½ºÆäÀ̽º·Î À̵¿ÇÏ¸ç µû¶ó¼­ MFCÀÇ ¸íĪ°ú È¥¶õÀÌ ¹ß»ýÇÑ °ÍÀÌ´Ù. ¸ÅÅ©·Î ±¸¹®¿¡¼­ º¸´Ù½ÃÇÇ using ¼±¾ðÀº ƯÁ¤ ¸ÅÅ©·Î°¡ ¼±¾ðµÇ¾î ÀÖÁö ¾ÊÀ» ¶§¸¸ ¼öÇàµÈ´Ù. ÀÌ ¸ÅÅ©·Î¸¦ ¼±¾ðÇϸé using ¼±¾ðÀ» ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù.

 

#define _WTL_NO_AUTOMATIC_NAMESPACE

#include "atlbase.h"

#include "atlapp.h"

void CMFCWTLView::OnLButtonDown(UINT nFlags, CPoint point)

{

     CClientDC dc(m_hWnd);

     dc.Ellipse(point.x-16, point.y-16, point.x+16, point.y+16);

}

 

±×·¯³ª ÀÌ·¸°Ô ÇÏ¸é ¸íĪ Ãæµ¹ ¹®Á¦´Â ÇØ°á µÇÁö¸¸ Á¤ÀÛ WTLÀÇ CClientDC Ŭ·¡½º¸¦ ãÁö ¸øÇÑ´Ù. ¾î¿ ¼ö ¾øÀÌ CClientDC¾Õ¿¡ ¼Ò¼ÓÀ» ¹àÇô¾ß ÇÑ´Ù. ´ÙÀ½ ÄÚµå´Â Àß µ¿ÀÛÇÑ´Ù.

 

#define _WTL_NO_AUTOMATIC_NAMESPACE

#include "atlbase.h"

#include "atlapp.h"

void CMFCWTLView::OnLButtonDown(UINT nFlags, CPoint point)

{

     WTL::CClientDC dc(m_hWnd);

     dc.Ellipse(point.x-16, point.y-16, point.x+16, point.y+16);

}

 

Áߺ¹µÈ ¸íĪ¿¡ WTL::À» ºÙ¿© WTL ¶óÀ̺귯¸®ÀÇ ¸íĪÀÓÀ» ºÐ¸íÈ÷ Çß´Ù. ¿ä·¸°Ô Çϸé ÇØ°áµÈ´Ù. CClientDC ¶ó°í ¾²¸é MFCÀÇ CClientDCÀÌ°í WTL::CClientDC¶ó°í ¾²¸é WTLÀÇ CClientDCÀÌ´Ù. WTLÀÇ ÁÖÀÌ°í MFC°¡ ºÎ¶ó¸é ¹Ý´ë ¹æ¹ýÀ» ¾µ ¼öµµ ÀÖ´Ù. using namespace WTL¸¦ ¾²°í ¸ðµç MFC ¸íĪ¾Õ¿¡ ::À» ºÙ¿© Àü¿ª ¸íĪÀÓÀ» ¸í½ÃÇÏ¸é µÈ´Ù. ±×·¯³ª ´©°¡ ºÁµµ WTL::À» ºÙÀÌ´Â °ÍÀÌ ´õ °£ÆíÇÏ´Ù.

WTL °³¹ßÀÚ´Â ÀǵµÀûÀ¸·Î MFCÀÇ Å¬·¡½º¿Í °°Àº ¸íĪÀ» »ç¿ëÇß´Ù. ±× ÆíÀÌ MFC °³¹ßÀڵ鿡°Ô ÆíÇÏ°Ô ´À²¸Áö±â ¶§¹®ÀÌ´Ù. wCPen, wCStringÀ̶ó´Â ¸íĪÀ» »ç¿ëÇß´Ù¸é Ãæµ¹Àº ÇÇÇÒ ¼ö ÀÖÁö¸¸ ¾Æ¹«·¡µµ ¾î»öÇÏ´Ù. Á¤ Ãæµ¹ÀÌ ¹ß»ýÇÏ¸é ³×ÀÓ½ºÆäÀ̽º¶ó´Â ÀåÄ¡¸¦ ¾µ ¼ö ÀÖÀ¸¹Ç·Î Å« ¹®Á¦°¡ µÇÁö ¾ÊÀ» °ÍÀ̶ó°í »ý°¢ÇÑ °ÍÀÌ´Ù. ³×ÀÓ ½ºÆäÀ̽º¶ó´Â ¹®¹ýÀº ÀÌ·² °æ¿ì È®½ÇÈ÷ µµ¿òÀÌ µÇ±â´Â ÇÑ´Ù.

±×·¯³ª ¸·»ó ´ë±Ô¸ðÀÇ MFC ÇÁ·ÎÁ§Æ®¿¡ WTL Äڵ带 È¥ÇÕÇؼ­ ¾²±â´Â ÀÌ·Ðó·³ ½±Áö¸¸Àº ¾Ê´Ù. ¿©±â Àú±â¼­ ¸íĪ Ãæµ¹ÀÌ ¹ß»ýÇϴµ¥ ƯÈ÷ ¸ÅÅ©·Î ³»¿¡¼­ ¸íĪÀÌ Ãæµ¹µÇ¸é ¾ÆÁÖ °ï¶õÇØÁø´Ù. ¾î·°Å³ª ÇØ°á ¹æ¹ýÀº ÀÖ±â´Â ÇÏÁö¸¸ ºñ¿ëÀÌ ¸¹ÀÌ µç´Ù. ¸¸¾à Á¤ µÎ ¶óÀ̺귯¸®¸¦ °°ÀÌ »ç¿ëÇØ¾ß ÇÑ´Ù¸é ¼Ò½º Â÷¿ø¿¡¼­ È¥ÇÕÇÏ´Â °Íº¸´Ù ÇÑÂÊ ÄÁÆ®·ÑÀ» DLL·Î ¸¸µé¾î ¾²´Â °ÍÀÌ ´õ ¹Ù¶÷Á÷ÇÏ´Ù.

´Ù.¸ð¹ÙÀÏ ÇÁ·ÎÁ§Æ®

WTL·Î ¸ð¹ÙÀÏ ÇÁ·Î±×·¡¹Öµµ °¡´ÉÇÏ´Ù. ÃÖ±Ù CE ±â¹ÝÀÇ ¸ð¹ÙÀÏ Àåºñ°¡ ¸¹¾ÆÁ® ¸ð¹ÙÀÏ °³¹ß ¼ö¿ä°¡ Áõ°¡Çߴµ¥ ÀÌ·± ÇÁ·ÎÁ§Æ®¿¡ WTLÀº ²Ï ÁÁÀº °³¹ß ¹æ¹ýÀÌ´Ù. ¸ð¹ÙÀÏ °³¹ßÀ» ÇÏ·Á¸é WTL ¼³Ä¡ Æú´õÀÇ AppWizMobile µð·ºÅ丮¿¡¼­ setup80.js ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏ¿© ½º¸¶Æ® ÀåÄ¡ ÇÁ·ÎÁ§Æ®¿¡ WTL ¸¶¹ý»ç¸¦ µî·ÏÇØ µÎ¾î¾ß ÇÑ´Ù. ±×·¯¸é ½º¸¶Æ® ÀåÄ¡¿¡ WTL Mobile ¸¶¹ý»ç°¡ ³ªÅ¸³­´Ù.

 

¿¹ Á¦ : WTLMobile

ÀÌ ¸¶¹ý»ç¸¦ ÀÌ¿ëÇÏ¿© ÇÁ·ÎÁ§Æ®¸¦ ¸¸µé¾î º¸ÀÚ. ½º¸¶Æ® ÀåÄ¡ ÇÁ·ÎÁ§Æ®¿¡¼­ WTL Mobile ¸¶¹ý»ç¸¦ ¼±ÅÃÇÏ°í À̸§Àº WTLMobile·Î ÁØ´Ù.

¸ð¹ÙÀÏ¿ë ¸¶¹ý»ç´Â PC¿ë ¸¶¹ý»ç¿Í´Â ¸ð¾çÀÌ ¸¹ÀÌ ´Ù¸£´Ù. Platforms ÆäÀÌÁö¿¡¼­ Ÿ°Ù Ç÷§ÆûÀ» ÁöÁ¤Çϴµ¥ ÀÌ Ç÷§ÆûÀº ¼³Ä¡µÈ SDKÀÇ Á¾·ù¿¡ µû¶ó ´Þ¶óÁø´Ù. ÇöÀç ³ªÀÇ ³ëÆ®ºÏ¿¡´Â Windows Mobile 6 SDK°¡ ¼³Ä¡µÇ¾î ÀÖÀ¸¹Ç·Î ÀÌ Ç÷§ÆûÀÌ ³ªÅ¸³ª´Âµ¥ ±×·¸Áö ¾Ê´Ù¸é 2003 Ç÷§Æû¸¸ ³ªÅ¸³¯ °ÍÀÌ´Ù.

WM 6 Professional SDK¸¸ ¼±ÅÃÇÏ°í Application Type ÆäÀÌÁö¿¡¼­ Generate .cpp Files ¿É¼ÇÀ» ¼±ÅÃÇÑ´Ù. ¸ð¹ÙÀÏ¿ë ÇÁ·ÎÁ§Æ®ÀÌ´Ù º¸´Ï ÀüüÀûÀÎ ±¸Á¶°¡ PC¿ë ÇÁ·ÎÁ§Æ®¿Í´Â »ó´çÈ÷ ´Ù¸£¸ç ÄÚµù ¹æ¹ý¿¡µµ ¹Ì¼¼ÇÑ Â÷ÀÌÁ¡µéÀÌ ¸¹´Ù. ¹º°¡ Ãâ·ÂÀ» ÇØ º¸±â À§ÇØ ºä¿¡ ´ÙÀ½ Äڵ带 ÀÛ¼ºÇÑ´Ù.

 

LRESULT CWTLMobileView::OnPaint(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)

{

     CPaintDC dc(m_hWnd);

 

     dc.ExtTextOut(10,10,0,NULL,L"WTL Mobile",lstrlen(L"WTL Mobile"),NULL);

 

     return 0;

}

 

¸ð¹ÙÀÏ È¯°æ¿¡¼­´Â TextOutÀÌ ¾øÀ¸¹Ç·Î ExtTextOutÀ¸·Î ¹®ÀÚ¿­À» Ãâ·ÂÇØ¾ß ÇÑ´Ù. ½ÇÇàÇÏ¸é ¿¡¹Ä·¹ÀÌÅÍ°¡ ³ªÅ¸³ª°í ¹®ÀÚ¿­ÀÌ Ãâ·ÂµÉ °ÍÀÌ´Ù.

¸¶¿ì½º ¸Þ½ÃÁö¸¦ ó¸®ÇÏ¸é ¸ð¹ÙÀÏ È­¸é¿¡ ÀÚÀ¯ °î¼±À» ±×¸± ¼öµµ ÀÖ°í ´ëÈ­»óÀÚ¸¦ ¿­°Å³ª ÄÁÆ®·ÑÀ» ¾µ ¼öµµ ÀÖ´Ù. ¹°¸®ÀûÀÎ Àåºñ°¡ ÀÖ´Ù¸é ¿¬°áµÈ »óÅ¿¡¼­ ½ÇÇà ¹× µð¹ö±ëÇØ º¼ ¼öµµ ÀÖ´Ù. ´ÙÀ½Àº WM 6.1 Àåºñ¸¦ PC¿¡ ¿¬°áÇÑ Ã¤·Î ÀÌ ¿¹Á¦¸¦ ½ÇÇàÇÑ °ÍÀÌ´Ù.

ÀÚ±â ÇÚµåÆù¿¡¼­ »ç¿ëÇÒ ÇÁ·Î±×·¥ÀÌ ÀÚ½ÅÀÌ Á÷Á¢ ¸¸µé¾î¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀº Âü ¸ÚÁø ÀÏÀÌ´Ù. WTLÀÌ °¡Àå ½Ç¿ëÀûÀÎ ºÐ¾ß°¡ ¹Ù·Î ¸ð¹ÙÀÏ È¯°æÀÌ´Ù. »ç½Ç µ¥½ºÅ©Å¾ ȯ°æ¿¡¼­´Â MFC¸¸À¸·Îµµ ÃæºÐÇÏ´Ù. ¸ð¹ÙÀÏ È¯°æÀº ¾ÆÁ÷µµ ¸®¼Ò½º°¡ ³Ë³ËÄ¡ ¾ÊÀ¸¹Ç·Î MFC´Â ºÎ´ã½º·¯¿ì¸ç ÀÛ°í °¡º­¿î ¶óÀ̺귯¸®°¡ ÇÊ¿äÇÏ´Ù.