°³¹ß °í¼öµéÀÇ »õ·Î¿î Ä£±¸ ºñÁÖ¾ó C++ 2008
ºñÁÖ¾ó C++ 1.0Àº 1992³â¿¡ MFC 2.0 ¹öÀüÀ» Æ÷ÇÔÇÑ À©µµ¿ì 16/32 API¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â 16ºñÆ®/32ºñÆ® ¹öÀüÀ¸·Î ¹ßÇ¥µÇ¾ú´Ù. ¾î´Àµ¡ 17³âÀ̶õ ±ä ¼¼¿ùµ¿¾È °³¹ßÀÚµé°ú ÇÔ²²Çϰí ÀÖ´Â ¼ÀÀÌ´Ù. °³¹ß µµ±¸»Ó¸¸ÀÌ ¾Æ´Ï¶ó ¼ÒÇÁÆ®¿þ¾î Áß¿¡¼µµ ÀÌ·¸°Ô ¿À·£ ±â°£ ²ÙÁØÇÏ°Ô »ç¶ûÀ» ¹Þ´Â Á¦Ç°Àº ¾ÆÁÖ µå¹° °ÍÀÌ´Ù. ´ÜÁö ±â°£¸¸ ¿À·£ µÈ °ÍÀÌ ¾Æ´Ï´Ù. ºñÁÖ¾ó C++´Â ±× ´ç½ÃÀÇ Ãֽбâ¼ú°ú ¿î¿µÃ¼Á¦¸¦ ¹Ý¿µÇؼ ²ÙÁØÈ÷ ¹ßÀüÀ» ÇØ ¿Ô´Ù.
ºñÁÖ¾ó C++ÀÇ ¿ª»ç
¿À·£ ¼¼¿ù °³¹ßÀÚµé°ú ÇÔ²² ÇØ¿Â ºñÁÖ¾ó C++ Áß¿¡¼ °¡Àå ¸¹Àº »ç¶ûÀ» ¹ÞÀº °ÍÀº ¹öÀü 2.0°ú 6.0ÀÏ °ÍÀÌ´Ù. 2.0Àº À©µµ¿ì 95¿Í NT¸¦ °Ü³ÉÇØ¼ óÀ½À¸·Î ¼ø¼ö 32ºñÆ® ¹öÀü¸¸À¸·Î ±¸¼ºµÈ ¹öÀüÀÌ´Ù. À̶§´Â MSDNÀÌ °³¹ßÀÚµéÀÇ Áö½Ä â°í ¿ªÇÒÀ» º»°ÝÀûÀ¸·Î Çϱ⠽ÃÀÛµÈ ¶§À̱⵵ ÇÏ´Ù.
6.0Àº ´õ ÀÌ»ó ¸»ÀÌ ÇÊ¿ä ¾ø´Â ¹öÀüÀÌ´Ù. MFC 6.0°ú ÇÔ²² ÃÖ±Ù ±îÁöµµ °³¹ßÀڵ鿡°Ô °¡Àå ¿À·¡ »ç¿ëµÇ°í ÀÖ´Â ¹öÀüÀÌ´Ù. 98³â¿¡ ³ª¿Â ¹öÀüÀÌ´Ï 10³âÀÌ ³Ñ°Ô »ç¿ëµÈ ¹öÀüÀÌ´Ù. º¸´Ù ÀÚ¼¼ÇÑ ºñÁÖ¾ó C++ÀÇ ¿ª»ç´Â À§Å°ÇÇµð¾Æ¿¡ Àß Á¤¸®µÇ¾î ÀÖÀ¸´Ï ¾Æ·¡ ¸µÅ©¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.
À§Å°ÇÇµð¾Æ Visual C++ÀÇ ¿ª»ç URL: http://en.wikipedia.org/wiki/Visual_C_Plus_Plus#History
MSÀÇ Å« °³¹ß Àü·«ÀÌ 2000³â ´å³Ý º£Å¸¸¦ ±âÁ¡À» ½ÃÀÛÇØ¼ 2002³â ´å³Ý Á¤½ÄÀÌ ³ª¿À¸é¼ ¿£ÅÍÇÁ¶óÀÌÁî °³¹ß ȯ°æÀº ±Þ¼ÓÈ÷ ´å³Ý°ú À¥À¸·Î ³Ñ¾î°¡°Ô µÇ¾ú´Ù. MS ¶ÇÇÑ ÀÌ ºÎºÐ¿¡ ¿ª·®À» ÁýÁßÇÏ°Ô µÇ¾î, ½Ã½ºÅÛ ÇÁ·Î±×·¡¹Ö°ú °ÔÀÓ ±×¸®°í ÀÓº£µðµå ȯ°æ ¿Ü¿¡´Â ¸¹Àº ºÎºÐÀÌ ´å³Ý°ú À¥À¸·Î ³Ñ¾î°¡°Ô µÇ¾ú´Ù. ±× Å¿¿¡ ºñÁÖ¾ó C++ÀÇ ºñÁß°ú °ü½ÉÀº »ó´ëÀûÀ¸·Î ÁÙ¾îµé°Ô µÇ¾ú´Ù.
±×·¸Áö¸¸, Çѱ¹°ú °°ÀÌ ¼ÒÇÁÆ®¿þ¾î º¸´Ù´Â Çϵå¿þ¾î Áß½ÉÀûÀΠȯ°æ¿¡¼´Â ¿©ÀüÈ÷ Å« ºñÁßÀ» Â÷ÁöÇß¾ú´Ù. Çѱ¹ ¼ÒÇÁÆ®¿þ¾î¿¡¼ °¡Àå ¼öÃâÀ» ¸¹ÀÌ ÇÏ´Â °ÔÀÓ ºÐ¾ß¿¡¼µµ ºñÁÖ¾ó C++ÀÇ ÁöÀ§´Â º¯ÇÔ¾øÀÌ È®°íÇÏ´Ù.
ºñÁÖ¾ó C++ ´å³Ý 2002(VC 7.0)¿Í ºñÁÖ¾ó C++ ´å³Ý 2003(VC 7.1)¿¡¼ÀÇ ºñÁÖ¾ó C++´Â °³¹ß µµ±¸ÀÇ ¿ª·®ÀÌ ´ëºÎºÐ ´å³Ý¿¡ ÁýÁߵǾî ÀÖ´ø ½Ã±â¶ó C++ °³¹ßÀڵ鿡°Ô´Â Á» ºÎÁ·ÇÑ ºÎºÐÀ̳ª ¾Æ½¬¿î ºÎºÐÀÌ ¸¹¾Ò´ø ½Ã±â¿´´Ù.
»ó´ëÀûÀ¸·Î ºñÁÖ¾ó C++ 2005(VC 8.0) ¹öÀü¿¡¼ ´å³Ý°úÀÇ °¡±³ ¿ªÇÒÀ» °ÈÇÑ C++/CLI¿Í OpenMPÀÇ µµÀÔ µî¿¡¼ ´Ù½Ã VC++ °³¹ßÀÚÀÇ ÁÖ¸ñÀ» ¹Þ±â ½ÃÀÛÇÑ ¹öÀüÀÌ µÉ °Í °°´Ù.
À̹ø¿¡ »õ·Ó°Ô ¹ßÇ¥µÈ µÈ ºñÁÖ¾ó C++ 2008(VC 9.0)Àº ³ª¿À±â ÀüºÎÅÍ MFCÀÇ È®½ÇÇÑ ¾÷±×·¹ÀÌµå ¼Ò½Ä°ú ÇÔ²² VC °³¹ßÀڵ鿡°Ô¼ ¸¹ÀÌ È¸ÀÚ µÇ¸é¼ °ü½ÉÀ» ¹Þ¾Æ¿Ô´Ù. ÇÏÁö¸¸, ºñÁÖ¾ó ½ºÆ©µð¿À 2008 RTM¿¡´Â MFCÀÇ ¾÷±×·¹À̵åÀÎ MFCNext¿Í C++ Ç¥ÁØ È®Àå ¶óÀ̺귯¸®ÀÎ Cpp0xÀÇ »õ ±â´ÉµéÀÌ Æ÷ÇÔµÈ TR1ÀÌ Æ÷ÇÔµÇÁö ¾Ê¾Ò°í, º°µµ·Î Visual C++ 2008 Feature PackÀ» ¹èÆ÷ÇÏ°Ô µÇ¾ú´Ù. ù º£Å¸ ¹öÀüÀº 1¿ù 7ÀÏ¿¡ ¹ßÇ¥µÇ¾ú´Ù. ´Ù¿î·Îµå °æ·Î¿Í Âü°í URLÀº ´ÙÀ½°ú °°´Ù.
Visual C++ 2008 Feature Pack Beta
http://www.microsoft.com/downloads/details.aspx?FamilyId=D466226B-8DAB-445F-A7B4-448B326C48E7&displaylang=en
Visual C++ 2008 Feature Pack Documentation
http://www.microsoft.com/downloads/details.aspx?FamilyId=0D805D4E-2DC2-47C7-8818-A9F59DE4CD9B&displaylang=en
Visual C++ Team Blog : MFC Beta Now Available
http://blogs.msdn.com/vcblog/archive/2008/01/07/mfc-beta-now-available.aspx
Visual C++ Team Blog Q&A on our TR1 implementation
http://blogs.msdn.com/vcblog/archive/2008/01/08/q-a-on-our-tr1-implementation.aspx
ºñÁÖ¾ó C++ ÆÀ ºí·Î±×¿¡´Â ºñÁÖ¾ó C++ 2008¿¡ ´ëÇÑ ³»¿ëµéÀÌ Àß Á¤¸®µÇ¾î ÀÖ´Ù. ±× Áß¿¡¼µµ »õ·Î Ãß°¡µÈ ±â´Éµé¿¡ ´ëÇÑ ³»¿ëÀ» ¿ä¾àÇØ º¸¸é ´ÙÀ½°ú °°ÀÌ µÎ °¡Áö·Î º¼ ¼ö ÀÖ´Ù.
MFCNext
- ¿ÀÇǽº ¸®º» ½ºÅ¸ÀÏÀÇ ÀÎÅÍÆäÀ̽º
- ¿ÀÇǽº 2007, ¿ÀÇǽº 2003°ú ¿ÀÇǽº XPÀÇ ·è¾ØÇÊ
- ºñÁÖ¾ó ½ºÆ©µð¿À ½ºÅ¸ÀÏÀÇ µµÅ· Åø¹Ù¿Í µµÅ· ÆÇ
- Ä¿½ºÅ͸¶ÀÌ¡ÀÌ °¡´ÉÇÑ Åø¹Ù¿Í ¸Þ´º
- ´Ù¾çÇÑ Çâ»óµÈ GUI ÄÁÆ®·Ñµé
- Çâ»óµÈ MDI Åǰú ±×·ì
- ´Ù¸¥ ¿©·¯ ±â´É µî
TR1
- ½º¸¶Æ® Æ÷ÀÎÅÍ Áö¿ø
- Á¤±Ô ½Ä(Regular expression) ÆÄ½Ì
- »õ·Î¿î ÄÁÅ×À̳Ê(tuple, array, unordered set µî)
- Çâ»óµÈ ³¼ö »ý¼º±â
- ´ÙÇü ÇÔ¼ö ·¡ÆÛ
- Type trait
- ´Ù¸¥ ¿©·¯ ±â´É µî
ºñÁÖ¾ó C++ 2008ÀÇ ¸ñÇ¥
¾Õ¿¡¼ ¾ê±âÇÑ °Íó·³ MS°¡ À̾߱âÇÏ´Â ºñÁÖ¾ó C++ 2008ÀÇ ¸ñÇ¥¸¦ Â÷¼¼´ë ±â¼ú°ú ÃÖ°íÀÇ ³×ÀÌÆ¼ºê µµ±¸¸¦ ÀÌ¿ëÇÑ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® Ç÷§Æû¿¡¼ÀÇ °³¹ßÀÚÀÇ ¼º°øÀÌ´Ù. ¸ñÇ¥¸¦ À§ÇØ ‘ÃÖ°íÀÇ ¼º´ÉÀ» Á¦°øÇÏ´Â ±³Â÷ Ç÷§Æû ÄÚµå ÀÛ¼º’, ‘±âÁ¸ C++·Î ÀÛ¼ºµÈ ÄÚµåÀÇ ÀçȰ¿ë’, ‘´å³ÝÀÇ ÀåÁ¡µµ ÃÖ´ëÇÑ È°¿ë’ µîÀÇ ±âÁØÀ» Á¦½ÃÇϰí ÀÖ´Ù. ±×·³ °¢ ±âÁصéÀ» À§ÇØ ¾î¶² ÁغñµéÀ» ÇØ µÎ¾ú´ÂÁö »ìÆìº¸ÀÚ.
³×ÀÌÆ¼ºê Ç÷§Æû ±â¼úÀÇ °¡Ä¡ Áõ´ë
¡Ü ³×ÀÌÆ¼ºê ¶óÀ̺귯¸®¿¡ ´ëÇÑ °·ÂÇÑ ÅõÀÚ - ºñ½ºÅ¸ UI¸¦ Áö¿øÇÏ´Â »õ·Î¿î MFC
¡Ü ÅëÇÕ °³¹ß ȯ°æ°ú ÇÁ·ÎÁ§Æ®¿¡¼ UAC Áö¿ø
¡Ü ºñ½ºÅ¸ SDK¸¦ ÅëÇÑ ¼öõ °³ÀÇ »õ·Î¿î ³×ÀÌÆ¼ºê API Á¦°ø
³×ÀÌÆ¼ºê¿Í °ü¸®µÇ´Â ÄÚµåÀÇ °¡±³
¡Ü C++/CLI ¾ð¾î & IJW »óÈ£ ÀÛ¿ë
¡Ü ¶óÀ̺귯¸® ±â¹ÝÀÇ °¡±³ ±â¼ú Á¦°ø- STL/CLR, ¸¶¼£¸µ ¶óÀ̺귯¸®
°³¹ßÀÚ¿¡°Ô ±â¹ÎÇÔ°ú »ý»ê¼º Á¦°ø
¡Ü ´ëÇü ÇÁ·ÎÁ§Æ®¿¡¼µµ ÅëÇÕ °³¹ß ȯ°æÀÇ È®Àå ´É·Â Á¦°ø
¡Ü È¿À²¼º ³ôÀº ÄÄÆÄÀÏ·¯ Á¦°ø
¡Ü ÄÄÆÄÀÏ·¯ÀÇ Çâ»ó: ¸ÞŸµ¥ÀÌÅÍ ±â¹ÝÀÇ °ü¸®µÇ´Â ÄÚµå ºôµå Çâ»ó ¹× ¸ðµâ ÄÄÆÄÀϸµ
¡Ü .NET Framework ¸ÖƼ Ÿ±êÆÃ
¡Ü Ŭ·¡½º µðÀÚÀ̳ÊÀÇ ºÎȰ!
º´·Ä ÄÄÆÄÀÏÀ» ÅëÇÑ ÄÄÆÄÀÏ ¼º´É Çâ»ó
±×·³ VC++ °³¹ßÀÚ¸¦ ÃÖ°íÀÇ °³¹ßÀÚ·Î À̲ø¾î Áشٴ °Ç ¾î¶»°Ô Áö¿øÇϰڴٴ °É±î? Áö±ÝºÎÅÍ ½ÇÁ¦·Î VC++ 2008¿¡¼ °³¼±µÈ ±â´ÉµéÀ» ¾î¶»°Ô Ȱ¿ëÇϸé ÁÁÀ»Áö¿¡ ´ëÇØ ÇÔ²² »ìÆìº¸ÀÚ.
±× ù ¹øÂ°´Â ¹Ù·Î º´·Ä ÄÄÆÄÀÏÀÌ´Ù. VC++ 2008Àº cl.exe ¿ë ¸ÖƼ ÇÁ·Î¼¼½º ºôµå ¿É¼ÇÀÎ /MP¸¦ ÅëÇØ ¼Ò½º ¼öÁØÀÇ µ¿½Ã ÄÄÆÄÀÏÀ» Áö¿øÇÑ´Ù. ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù.
/MP³ª /MP[n] ÇüÅ·Π»ç¿ë ÇÒ ¼ö ÀÖ´Ù. ¿©±â¼ nÀº ÇÁ·Î¼¼½ºÀÇ ¼ö¸¦ ÁöÁ¤ÇØ ÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù. ÇÁ·Î¼¼¼ ¼ö¸¦ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ÄÄÆÄÀÏ·¯´Â ½Ã½ºÅÛ¿¡¼ »ç¿ë °¡´ÉÇÑ ¼öÀÇ ³í¸® ÇÁ·Î¼¼¼¸¦ ¾Ë¾Æ¼ »ç¿ëÇÑ´Ù.
ºñÁÖ¾ó ½ºÆ©µð¿À¿¡¼ Àû¿ëÇÏ·Á¸é [Project] ¸Þ´ºÀÇ [Pro perties] â¿¡¼ [Configuration Properties] Ç׸ñ¿¡¼ C/C++ Ç׸ñÀÇ [Command Line] ¿É¼Ç â¿¡¼ [Additional options] Ç׸ñ¿¡ /MP ¶Ç´Â /MPnÀ» ÀÔ·ÂÇÏ¸é µÈ´Ù.
.jpg)
/MP ¿É¼ÇÀº °ü¸®Çü ÄÚµå¿Í ÇÔ²² »ç¿ëµÇ´Â ÁõºÐ ºôµå¿¡¼ ¼º´ÉÀÌ ¹ßÈÖ µÇ´Â µíÇÏ´Ù. ¾î¼Àºí¸®°¡ ¸ÞŸµ¥ÀÌÅÍ¿Í ÄÄÆ÷³ÍÆ®ÀÇ ±¸ÇöÀ» ÇϳªÀÇ ¹ÙÀ̳ʸ®¿¡ ÆÐŰ¡Çϱ⠶§¹®¿¡ ¾î¼Àºí¸®¸¦ »ç¿ëÇÏ´Â ÇÁ·ÎÁ§Æ®´Â ÇØ´ç ¾î¼Àºí¸®ÀÇ ÀϺΰ¡ º¯°æµÉ °æ¿ì ´Ù½Ã ºôµå ÇØ¾ß ÇÑ´Ù.
ÀÌ·¯ÇÑ °æ¿ì¿¡¼ ÁõºÐ ºôµå´Â Á¾¼ÓµÈ ¾î¼Àºí¸®ÀÇ ÀÎÅÍÆäÀ̽º º¯°æÀÌ ¾ø´Â °æ¿ì ´Ù½Ã ºôµå ÇÏÁö ¾Ê¾Æµµ µÈ´Ù. ÀÌ·¯ÇÑ °æ¿ì °³¹ß »ý»ê¼º Ãø¸é¿¡¼ ¾ÆÁÖ À¯¸®ÇÑ ±â´ÉÀÌ µÉ °Í ÀÌ´Ù.
»ç¿ëÀÚ °èÁ¤ ÄÁÆ®·Ñ(UAC)
»ç¿ëÀÚ °èÁ¤ ÄÁÆ®·ÑÀº À©µµ¿ì ºñ½ºÅ¸ÀÇ ÀÀ¿ëÇÁ·Î±×·¥ º¸¾È ¸ðµ¨ÀÌ´Ù. »ç¿ëÀÚÀÇ ÇöÀç ±ÇÇÑÀ» ÀÀ¿ëÇÁ·Î±×·¥¿¡¼´Â ±âº» ¼³Á¤À¸·Î¸¸ Á¦°øÇϰí, °ü¸®ÀÚ ±ÇÇÑÀÌ ÇÊ¿äÇÒ °æ¿ì »ç¿ëÀÚ¿¡°Ô ¸í½ÃÀûÀ¸·Î ±ÇÇÑ ½Â±ÞÀ» ¿äÃ»ÇØ »ç¿ëÀÚ°¡ ÀνÄÇÏÁö ¸øÇÏ´Â »çÀÌ °ü¸®ÀÚ ±ÇÇÑÀ¸·Î ÀÀ¿ëÇÁ·Î±×·¥ÀÌ »ç¿ëµÇ´Â °ÍÀ» ¸·¾ÆÁÖ´Â ¿ªÇÒÀ» ÇÑ´Ù.
ºñ½ºÅ¸ÀÇ °æ¿ì UAC »ç¿ëÀÌ ±âº» ¼³Á¤À̶ó, °³¹ßÀÚµé ¶ÇÇÑ ÀÚ½ÅÀÇ ÀÀ¿ëÇÁ·Î±×·¥ÀÌ UAC¿¡¼ ¿ä±¸µÇ´Â Çʼö XML ¸Å´ÏÆä½ºÆ®¸¦ »ý¼ºÇØ¾ß ÇÑ´Ù.
¼±Åà ÇÒ ¼ö ÀÖ´Â ¿É¼ÇÀº As-Invoker, Highest-Available, Re quire-Administrator ¼¼ °¡Áö È£Ãâ ¸ðµå Áß Çϳª¸¦ ¼±Åà ÇÒ ¼ö ÀÖ´Ù. °³º° ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù.
¡Ü As-Invoker: ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ±âº» ¼³Á¤À¸·Î ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ºÎ¸ð ÇÁ·Î¼¼½º¿Í µ¿ÀÏÇÑ ÅäÅ«À¸·Î ½ÇÇàµÇµµ·Ï Çã¿ëÇÑ´Ù.
¡Ü Require-Administrator: ÀÌ ¿É¼ÇÀÇ ÀÀ¿ë ÇÁ·Î±×·¥Àº ·ÎÄà ½Ã½ºÅÛÀÇ Administrators ±×·ì »ç¿ëÀÚ¸¸ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. ÀÌ ±ÇÇÑ ¼öÁØÀÌ ¼³Á¤µÈ ÀÀ¿ë ÇÁ·Î±×·¥À» È£ÃâÇϸé ÇØ´ç ±ÇÇÑ ¼öÁØÀ¸·Î ½ÇÇàÇϵµ·Ï ¿ä±¸ÇÏ´Â UAC ´ëÈ »óÀÚ°¡ Ç¥½ÃµÈ´Ù.
¡Ü Highest-Available: ÀÌ ±ÇÇÑ ¼öÁØ¿¡¼´Â ÇöÀç »ç¿ëÀÚ¿¡°Ô ºÎ¿©µÈ ±ÇÇÑ Áß °¡Àå ³ôÀº ±ÇÇÑÀ» »ç¿ëÇØ¾ß ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¼ö ÀÖ´Ù.
ºñÁÖ¾ó C++ 2008Àº ÀÌ·¯ÇÑ ±â´ÉÀ» µµ±¸¿¡¼ ÀÚµ¿À¸·Î ¼³Á¤ÇÒ ¼ö ÀÖµµ·Ï µµ¿ÍÁÖ°í ÀÖ´Ù. ºñÁÖ¾ó ½ºÆ©µð¿À¿¡¼ Àû¿ëÇÏ·Á¸é [Project] ¸Þ´ºÀÇ [Properties] â¿¡¼ [Configuration Properties] Ç׸ñ¿¡¼ [Linker] Ç׸ñÀÇ [Manifest File] â¿¡¼ UAC Execution Level¿¡¼ ¿É¼ÇÀ» ¼±ÅÃÇÏ¸é µÈ´Ù. µðÆúÆ®°ªÀ¸·Î As-Invoker°¡ ¼±ÅõǾî ÀÖÀ» °ÍÀÌ´Ù.
.jpg)
ÇÊ¿äÇÏ´Ù¸é, LINKER.EXE¸¦ ÅëÇØ /MANIFESTUAC[: {NO|UAC fragment}] ÇüÅ·Π¼³Á¤ ÇØµµ µÈ´Ù.
°³¹ß¿¡ ÀÖ¾î¼ º¸¾ÈÀº ÀÌÁ¦ ¼±ÅÃÀÌ ¾Æ´Ñ Çʼö°¡ µÇ¾úÀ¸¸ç, À©µµ¿ì ºñ½ºÅ¸´Â º¸¾È ¹®Á¦¸¦ º¸´Ù ¾ö°ÝÇÏ°Ô Àû¿ëÀ» Çϰí ÀÖ´Ù. ÀÌ ºÎºÐ¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â MSDN º¸¾È °³¹ßÀÚ ¼¾Å͸¦ Ç×»ó Âü°íÇÏ´Â °ÍÀ» ±ÇÇÑ´Ù.
MSDN º¸¾È °³¹ßÀÚ ¼¾ÅÍ RUL: http://www.microsoft.com/korea/msdn/security/
Ŭ·¡½º µðÀÚÀ̳Ê
°³¹ßÀÚ¿¡°Ô ÀÖ¾î¼ ¾î¶°ÇÑ ´ÙÀ̾î±×·¥ º¸´Ù Áß¿äÇÑ °ÍÀÌ Å¬·¡½º ´ÙÀ̾î±×·¥ÀÌ´Ù. ÀÌ ´ÙÀ̾î±×·¥À» º¸¸é¼ Ŭ·¡½º¸¦ ¼³°èÇϰí, °³¹ß ÇÏ´Â °ÍÀº °³¹ß »ý»ê¼º Çâ»óÀ̳ª ÇÁ·Î±×·¥ÀÇ ¿À·ù¸¦ Á¡°ËÇÏ´Â Â÷¿ø¿¡¼ ¾ÆÁÖ Áß¿äÇÏ´Ù. ¾Æ½±°Ôµµ VC++¿¡¼ ÀÌ·± ±â´ÉÀÌ Àá½Ã Áö¿øµÈ ÈÄ ÃÖ±Ù¿¡´Â »ç¿ëÀ» ÇÏÁö ¸øÇß´Ù.
±×·±µ¥ À̹ø VC++ 9¿¡¼ ´Ù½Ã ÀÌ ±â´ÉÀ» ´Ù½Ã »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. VC++ °³¹ßÀÚµéÀÇ Å« ºÒ¸¸ Áß Çϳª°¡ ¿Ö ´å³Ý°ú °°ÀÌ Å¬·¡½º µðÀÚÀ̳ʰ¡ Áö¿øµÇÁö ¾Ê´À³Ä´Â °ÍÀ̾ú´Âµ¥, Á¤¸» ¹Ý°¡¿î ±â´ÉÀÌ ´Ù½Ã Ãß°¡ µÈ µíÇÏ´Ù.
¸íÈ®ÇÑ ÄÚµå µ¿±âÈ¿Í ¾ð¾îÀÇ ¸íÈ®ÇÑ Ç¥ÇöÀ» ÅëÇØ ±âÁ¸ ÄÚµåÀÇ ÀÌÇØ¸¦ Áõ´ë ½Ã۰í, »ó¼Ó°ú Ŭ·¡½º°£ÀÇ ¿¬°ü °ü°è¸¦ º¸´Ù ³í¸®ÀûÀ̰í Á÷°üÀû ½Ã°¢À¸·Î ¸¸µé ¼ö ÀÖ¾î °³¹ßÀÚ¿¡°Ô µµ¿òÀÌ µÉ °ÍÀÌ´Ù.
.jpg)
Áö±Ý±îÁö´Â À¯Æ¿¸®Æ¼ ¼ºÇâÀÇ ±â´ÉÀ» ÅëÇØ °³¹ßÀÚ¿¡°Ô µµ¿òÀ» ÁÖ´Â ±â´ÉÀ» À̾߱â Çß¾ú°í, ÀÌÁ¦ Á» ´õ ÄÚµå ¼öÁØ¿¡¼ Àç»ç¿ë°ú Çâ»ó µÈ ±â´Éµé¿¡ ´ëÇØ ¾Ë¾Æº¸µµ·Ï ÇÏÀÚ.
¸ÕÀú, VC++ 2008ÀÇ ÁÖ¿ä ±âÁØÀ̾ú´ø ³×ÀÌÆ¼ºê¿Í °ü¸®µÇ´Â ÄÚµåÀÇ °¡±³¿¡ ´ëÇØ »ìÆìº¸µµ·Ï ÇϰڴÙ.
¸¶¼£¸µ ¶óÀ̺귯¸®³×ÀÌÆ¼ºê ÄÚµå¿Í °ü¸®µÇ´Â Äڵ带 ÇÔ²² »ç¿ëÇϱâ À§Çؼ °¡Àå ¸ÕÀú ÇØ°áµÇ¾î¾ß ÇÒ °ÍÀÌ, µÎ ½Ã½ºÅÛ °£ÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀÇ ¸¶¼£¸µÀÌ´Ù. ¸¶¼£¸µ ¶óÀ̺귯¸®´Â µÎ ½Ã½ºÅÛ°£ÀÇ Å¸ÀÔÀ» ¸¶¼£¸µ ÇÏ´Â ÄÚµå ÀÛ¼º¿¡ µû¸¥ º¹À⼺À» ÁÙ¿© ÁÖ´Â »õ·Î¿î ¶óÀ̺귯¸®¸¦ Á¦°øÇϰí ÀÖ´Ù. ¸ÕÀú C++¿¡¼ »ç¿ëµÇ´Â ¹®ÀÚ¿ Çü½ÄÀ» ¸ðµÎ Áö¿øÇØ ÁØ´Ù.
±×¸®°í ±âº»ÀûÀ¸·Î Áö¿øµÇ´Â º¯È¯ ÀÌ¿ÜÀÇ º¯È¯Àº °³¹ßÀÚ°¡ Á÷Á¢ Ãß°¡ÇÒ ¼öµµ ÀÖ´Ù. ¾Æ·¡ÀÇ ¿¹´Â MSDN ¾ÆÆ¼Å¬¿¡¼ Á¦°øÇÏ´Â ¸¶¼£¸µ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¿© System::StringÀ» char *·Î º¯È¯ÇÏ´Â °£´ÜÇÑ ¼Ò½º¸¦ º¸ÀÚ.
#include <msclr/marshal.h>
void myfunc (String^ s)
{
msclr::interop::marshal_context ctx;
char *s2 = ctx.marshal_as<char*> (s);
//...
}
STL/CLR ¶óÀ̺귯¸®
¸Å´ÏÁöµå(Managed) C++´Â C++ °³¹ßÀÚ¿¡°Ô C++¸¦ º¹ÀâÇϰԸ¸ ÇÏ¿© »ç½Ç»ó ½ÇÆÐÇÑ °á°ú¸¦ ³º°Ô µÇ¾ú´Ù. À̸¦ ±Øº¹Çϱâ À§ÇØ C++/CLRÀÌ CLRÀÇ ¿ä¼ÒµéÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï STLÀÇ ¹öÀüÀ¸·Î ¸¸µç °ÍÀÌ STL/CLRÀÌ´Ù.
STL/CLRÀº °ü¸®µÇ´Â Äڵ忡¼ STLÀ» »ç¿ëÇÏ°Ô ¸¸µé¾îÁÖ°í, STL ¹× .NET Ä÷º¼Ç »çÀÌ¿¡ µ¥ÀÌÅÍ ±³È¯ ±â´ÉÀ» Á¦°øÇÏ°Ô µÈ´Ù. ´ÙÀ½Àº MSDN ¾ÆÆ¼Å¬¿¡¼ Á¦°øÇÏ´Â STL/CLR ¿¹ÀÌ´Ù.
#include <cliext/hash_map>
void myfunc ()
{
cliext::hash_map<Int32, String^> m;
m.insert (cliext::make_pair(5, L”five”));
cliext::hash_map<Int32, String^>::iterator i = m.find(5);
Console::WriteLine(“map[{0}] == {1}”, i->first, i->second);
}
ÀÌÁ¦ MFCNextÀÇ ±â´É¿¡ ´ëÇØ Çϳª¾¿ »ìÆìº¸ÀÚ.
MFC App Wizard¿¡¼ Áö¿øÇÏ´Â ÇÁ·ÎÁ§Æ® ½ºÅ¸ÀÏÀº MFC Ç¥ÁØ, À©µµ¿ì Ž»ö±â, ºñÁÖ¾ó ½ºÆ©µð¿À, ¿ÀÇǽº ÀÌ·¸°Ô ³× °¡Áö´Ù. ¿©±â¿¡ ºñÁÖ¾ó ½ºÅ¸Àϰú Ä÷¯·Î À©µµ¿ì ³×ÀÌÆ¼ºê/µðÆúÆ®, ¿ÀÇǽº 2003, ºñÁÖ¾ó ½ºÆ©µð¿À 2005 ¿ÀÇǽº 2007ÀÇ ³× °¡Áö Ä÷¯ µî Àϰö °¡Áö ½ºÅ¸ÀÏÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. Á¶ÇÕÀÇ °æ¿ì°¡ ¾ÆÁÖ ¸¹ÀÌ ´Ã¾î ³ °ÍÀ» º¼ ¼ö ÀÖ´Ù.
±×¸®°í User Interface Features¿¡¼ Ŭ·¡½Ä ¸Þ´º, ¸Þ´º ¹Ù¿Í Åø¹Ù »ç¿ë, ¸®º» »ç¿ëÀÇ ¼¼ °¡Áö ¿É¼Ç¿¡¼ ¼±ÅÃÀ» ÇÒ ¼ö ÀÖ´Ù.
.jpg)
¶ÇÇÑ ¿©±â¿¡ µµÅ· ÆÇ ¶ÇÇÑ Å½»ö±â¿Í ¾Æ¿ô·è, ¼Ó¼º â, ³×ºñ°ÔÀ̼Ç, ĸ¼Ç ¹Ù µîÀÇ ÇüŸ¦ Áߺ¹Çؼ ¼±Åà °¡´ÉÇϰí, ´Ù¾çÇÑ ÇüŸ¦ Àû¿ë ½Ãų ¼ö ÀÖ´Ù.
´õºÒ¾î ºñ½ºÅ¸¿Í °ü·ÃµÈ ±â´Éµéµµ Á¦°øÇϰí ÀÖ´Ù. ¹Ù·Î ¿¡¾î·Î (Aero) Àû¿ë, °ø¿ë ÄÁÆ®·Ñ, °Ë»ö »óÀÚ, ¿¡¾î·Î ¸¶¹ý»ç, °ø¿ë ´ÙÀ̾ó·Î±×, ÄÁÆ®·Ñ ÆÐ³Î, ¾ÆÀÌÄÜ, ½Ã½ºÅÛ ÆùÆ® (Segoe UI), »ç¿ëÀÚ °èÁ¤ ÄÁÆ®·Ñ (UAC: User Account Control) µîÀÌ´Ù.
.jpg)
¸Þ´º ¹Ù
MFC ¾ÖÇø®ÄÉÀ̼ǿ¡¼ ¸Þ´º ¼û±â±â ¶Ç´Â º¸À̱⸦ À§ÇØ Á¦°øÇÏ´Â CFrameWnd Ŭ·¡½º¿¡ »õ·Î¿î ¸Þ¼Òµå°¡ Ãß°¡µÇ¾ú´Ù.
virtual void CFrameWnd::SetMenuBarVisibility(DWORD nStyle);
virtual DWORD CFrameWnd::GetMenuBarVisibility();
µÎ °³ÀÇ ¸Þ¼Òµå¸¦ ÅëÇØ ÇÁ·Î±×·¥ ½ÇÇà Áß µ¿ÀûÀ¸·Î ¸Þ´º º¸À̱⳪ ¼û±â±â µ¿ÀÛÀ» Á¦¾îÇϰí, µÎ °³ÀÇ À̺¥Æ® Çڵ鷯¸¦ ÅëÇØ ¸Þ´º »óÅ¿¡ ´Ù¸¥ Äڵ带 Àû¿ëÇÒ ¼ö ÀÖ´Ù. ´Ü, MDI¿Í ´ÙÀ̾ó·Î±× ±â¹Ý ÀÀ¿ëÇÁ·Î±×·¥¿¡¼´Â Áö¿øÇÏÁö ¾Ê´Â´Ù.
°ø¿ë ÆÄÀÏ ´ÙÀ̾ó·Î±×
µðÆúÆ®·Î ºñ½ºÅ¸ ½ºÅ¸ÀÏ ´ÙÀ̾ó·Î±×´Â VS 2008 ¿¡¼ MFC ¾ÖÇø®ÄÉÀÌ¼Ç ÄÄÆÄÀϸ¸ Áö¿øÇÑ´Ù. »õ·Î¿î MFC °ø¿ë ÆÄÀÏ ´ÙÀ̾ó·Î±×´Â GetOpenFileName°ú GetSaveFileNameÀ» È£ÃâÇÏ´Â ´ë½Å IFileOpenDialog¿Í IFileSaveDialog ¸Þ¼Òµå¸¦ È£Ãâ ÇÑ´Ù.
»õ·Î¿î MFC °ø¿ë ÆÄÀÏ ´ÙÀ̾ó·Î±×´Â OnNotify ´ë½Å IFile DialogEvents¸¦ »ç¿ëÇÑ´Ù. ¸¸¾à »ç¿ëÀÚ°¡ ºñ½ºÅ¸ ÀÌÀü ¹öÀüÀÇ OS¸¦ »ç¿ëÇϰí ÀÖ´Ù¸é, ´ÙÀ̾ó·Î±×´Â µðÆúÆ®·Î ÀÌÀü ½ºÅ¸ÀÏ ´ÙÀ̾ó·Î±×¸¦ »ç¿ëÇÑ´Ù.
.jpg)
±âŸ ±â´É°ú ÄÁÆ®·Ñ
À̿ܿ¡µµ MFC Ãֽž÷µ¥ÀÌÆ®¸¦ ÅëÇØ »õ·Î¿î ÄÁÆ®·Ñ ¸Þ½ÃÁö, »õ·Î¿î WM ¸Þ½ÃÁö ±×¸®°í Pager ÄÁÆ®·Ñ, ³×Æ®¿öÅ© ÁÖ¼Ò ÄÁÆ®·Ñ, ¸í·É ¹öư, ºÐ¸® ¹öư, µîÀÇ ´Ù¾çÇÑ ±â´ÉÀ» Á¦°øÇÑ´Ù.
¡Ü Pager ÄÁÆ®·Ñ - ¾ç ³¡ ¹æÇâ¹öưÀ¸·Î ¹öư ÆäÀÌÁö ±¸¼º
¡Ü ³×Æ®¿öÅ© ÁÖ¼Ò ÄÁÆ®·Ñ - IPv4, IPv6 ¿Í DNS ¸í¿¡ ´ëÇÑ ÀԷ°ú À¯È¿¼º Áö¿ø. (CNetAddressCtrl)
¡Ü ¸í·É ¹öư - ¼±ÅÃÀûÀ¸·Î ¾ÆÀÌÄÜÀ̳ª ³ëÆ®¸¦ Ç¥½Ã ÇÒ ¼ö ÀÖ´Â Å« ¹öư (CButton)
¡Ü ºÐ¸® ¹öư - ¿©·¯ ¸í·É ÁýÇÕÀ» ¹À½À¸·Î Á¦°øÇÏ´Â ¹öư
.jpg)
<ȸé 7>¿¡¼´Â MFCNextÀÇ ´ëÇ¥ÀûÀÎ ¾÷±×·¹À̵åÀÎ ¸®º» ¹Ù¿¡ ´ëÇØ ÀÚ¼¼ÇÑ Å¬·¡½º ±¸Á¶¸¦ º¸¿© ÁÖ°í ÀÖ´Ù. ¸®º» ¹Ù´Â Å©°Ô ¿©¼¸ °³ÀÇ Å¬·¡½º·Î ±¸¼ºÀÌ µÇ¾î ÀÖ´Ù.
ÀÌ ¿Ü¿¡µµ À̹ø ¾÷±×·¹À̵å´Â º¸´Ù ¸¹Àº ºÎºÐÀ» Æ÷ÇÔÇϰí ÀÖÁö¸¸, ÇÊÀÚ ¶ÇÇÑ ¾ÆÁ÷ ¸ðµç °ÍÀ» ´Ù Å×½ºÆ® ÇØ º» °ÍÀÌ ¾Æ´Ï¶ó, ÇöÀç±îÁö ³ª¿Í ÀÖ´Â ºÎºÐÀ» Á» ´õ »¡¸® ¾Ë¸®°í ½ÍÀº ºÎºÐ¿¡¼ Á¤¸®¸¦ Çß°í, ±× Áß¿¡¼ ÇöÀç VC++ °³¹ßÀÚ¿¡°Ô À¯¿ëÇÑ ±â´Éµé À§ÁÖ·Î ±¸¼ºÀ» Çß´Ù.
¸¶Áö¸·À¸·Î TR1¿¡ ´ëÇØ Á» ´õ ¸¹Àº ºÎºÐÀ» ¾Ë°í ½ÍÀº ºÐµéÀº ¡ºC++ Ç¥ÁØ ¶óÀ̺귯¸® È®Àå : Æ©Å丮¾ó ¹× ·¹ÆÛ·±½º¡»(Pete Becker Àú/·ù±¤ ¿ª | Áö&¼±(ò¤&à½))À» Âü°íÇÏ±æ ¹Ù¶õ´Ù. ÀúÀÚ°¡ C++¿¡¼ ¾ÆÁÖ Àú¸íÇÑ ºÐÀ̰í, ¿ªÀÚ ¶ÇÇÑ ±¹³» ±â¼ú µµ¼ ¹ø¿ªÀÇ ÃÖ°í¶ó°í ÇÒ ¼ö ÀÖ´Â ºÐÀÌ ¹ø¿ªÀ» ÇØ¼, ÃßõÀ» ÇØ µå¸®´Â µµ¼´Ù.
°£·«È÷ VC++ 2008À» °æÇèÇÏ¸é¼ ´À³¤ °á·ÐÀº ºôµå ȯ°æ¿¡¼ °³¹ß »ý»ê¼ºÀ» À§ÇØ ½Å°æÀ» ¾´ ºÎºÐÀÌ ´«¿¡ ¶ç°Ô ÁÁ¾ÆÁ³´Ù´Â »ç½ÇÀÌ´Ù. ¶ÇÇÑ, ºñ½ºÅ¸¿¡ ´ëÇÑ °·ÂÇÑ Áö¿ø°ú MFCÀÇ ¾÷±×·¹À̵尡 ±âÁ¸ VC++ °³¹ßÀÚµéÀÇ ¿ä±¸¸¦ Á¦´ë·Î ¹Ý¿µÀ» Çϰí ÀÖ´Ù. ³×ÀÌÆ¼ºê¿Í °ü¸®µÇ´Â ÄÚµåÀÇ È¥¿ëÀ» ÅëÇÑ »ý»ê¼º Çâ»ó°ú ³×ÀÌÆ¼ºê ¶óÀ̺귯¸®¿¡ ´ëÇÑ Áö¼ÓÀûÀÎ Áö¿ø ¾à¼Óµµ ±âÁ¸ °³¹ßÀÚ¿¡°Ô ´ëÇÑ ¹è·Á¶ó°í ´À²¸Áø´Ù.
VC++´Â ¿ö³« Àç¾ß¿¡ ¼ûÀº °í¼ö°¡ ¸¹ÀÌ ÀÖ¾î, ¾ÕÀ¸·Î ½Ã°£ÀÌ Áö³ª¸é Áö³¯¼ö·Ï ¿©·¯ À¯¿ëÇϰí È¿À²ÀûÀÎ ¹æ¹ýµéÀÌ ºí·Î±×³ª Ä¿¹Â´ÏƼ¸¦ ÅëÇØ ³ª¿Ã °ÍÀÌ¶ó ¿¹»óµÈ´Ù.