Has C# lost its point?
Has C# lost its point? - Grumpy Old Programmer
C/C++ -> VB -> C# -> C++/CLI… ÀÌÁ¦ ÇѹÙÄû µ¹¾Ò±º¿ä.
Has C# lost its point? - Grumpy Old Programmer
C/C++ -> VB -> C# -> C++/CLI… ÀÌÁ¦ ÇѹÙÄû µ¹¾Ò±º¿ä.
ÁöÀÎÀÌ ¿î¿µÇÏ´Â »çÀÌÆ®¿¡¼ Àü¿¡ Æ÷½ºÆÃÇß¾ú´ø ·ÎÁöÅØ Cordless Desktop LX 700¸¦ 11¸¸¿ø(¹«·á¹è¼Û)¿¡ ÆÇ¸ÅÇÑ´Ù°í ÇÕ´Ï´Ù. ±¹³» ÃÖÀú°¡¶ó°í ÇÕ´Ï´Ù.
±¸¸ÅÇϽ÷Á°í Çß´Ù¸é À̹øÀÌ ÁÁÀº ±âȸÀÏ µí ÇÕ´Ï´Ù.

c++¿¡¼ ¹®ÀÚ¸¦ ÀúÀåÇϱâ À§ÇØ 8 ºñÆ® Å©±âÀÇ char ŸÀÔ À̿ܿ¡ 16 ºñÆ® Å©±â(À©µµ¿ì¿¡¼´Â 16 ºñÆ®¸¦ À¯´Ð½º °è¿¿¡¼´Â 32 ºñÆ®¸¦ »ç¿ëÇÑ´Ù°í ÇÕ´Ï´Ù.)ÀÇ ¿ÍÀ̵å ij¸¯Å͸¦ ÀúÀåÇÏ´Â wchar_t ŸÀÔÀ» Á¦°øÇϰí ÀÖ½À´Ï´Ù. wchar_t ŸÀÔ¿¡´Â ¹®ÀÚÀÇ MBCS/DBCS ¹× UCSUTF-16(À©µµ¿ì¿¡¼´Â little endianÀ» ±âº»ÀûÀ¸·Î »ç¿ëÇÕ´Ï´Ù.) ÀÎÄÚµùÀ» ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç, wchar_t¿Í ÇÔ²² ¿ÍÀ̵å ij¸¯ÅÍ/¹®ÀÚ¿ »ó¼ö¸¦ ÁöÁ¤Çϱâ À§ÇØ “L”À» »ç¿ëÇÕ´Ï´Ù.
´ÙÀ½Àº wchar_t¿Í À¯´ÏÄڵ带 ´Ù·ç¸é¼ »ý°¢ÇÏÁöµµ ¸øÇß´ø ¹®Á¦·Î ÇϷ縦 ²¿¹Ú º¸³»¹ö¸®°Ô µÈ À̾߱âÀÔ´Ï´Ù.
¹®Á¦´Â wcslen() ¸Þ¼Òµå¸¦ ÅëÇØ L”" ·Î ÁöÁ¤µÈ ¹®ÀÚ¿ÀÇ ¹®ÀÚ¼ö¸¦ ¾Ë¾Æ¿À´Âµ¥¿¡¼ ½ÃÀÛÇß½À´Ï´Ù.
setlocale(LC_ALL, ".949");
wchar_t *wstr1 = L"abc";
printf("length: %d", wcslen(wstr1));
--- °á°ú ---
length: 3
¿øÇÏ´Â °á°ú¿´½À´Ï´Ù. ±×·±µ¥ ´ÙÀ½ ÄÚµåÀÇ °á°ú´Â ÀÌ»óÇÕ´Ï´Ù.
setlocale(LC_ALL, ".949");
wchar_t *wstr2 = L"°¡³ª´Ù";
printf("length: %d", wcslen(wstr2));
--- °á°ú ---
length: 6
ºÐ¸íÈ÷ ŸÀÔÀº wchar_t À̹ǷΠ°á°ú´Â 3ÀÌ ³ª¿Í¾ß ÇÒ °Í °°Àºµ¥ char ŸÀÔ°ú strlen() ÇÔ¼ö¸¦ »ç¿ëÇÒ ¶§¿Í ¸¶Âù°¡Áö·Î 6ÀÌ ³ª¿É´Ï´Ù. ±×·¡¼ ¸Þ¸ð¸®¸¦ ´ýÇÁÇØºÃ½À´Ï´Ù. L”abc” ÀÇ °æ¿ì ´ÙÀ½°ú °°ÀÌ USC-16 little endian À¸·Î Á¤È®È÷ ÀúÀåµÇ¾ú½À´Ï´Ù.
61 00 62 00 63 00 00 00
±×·±µ¥ µÎ¹øÂ° L”°¡³ª´Ù” ÀÇ °æ¿ì
B0 00 A1 00 B3 00 AA 00 B4 00 D9 00 00 00
(À¯´ÏÄÚµå ÇÑ±Û ÄÚµåÅ×À̺í°ú KS-5601 ÄÚµåÅ×À̺íÀ» Âü°íÇϼ¼¿ä)
“°¡³ª´Ù”ÀÇ DBCS ÀÎÄÚµùÀ» ´Ü¼øÈ÷ 16ºñÆ®·Î ÀúÀåÇϰí ÀÖ´Â °ÍÀÌ¿´½À´Ï´Ù. Âü°í·Î “°¡³ª´Ù”ÀÇ DBCS ÀÎÄÚµùÀº ´ÙÀ½°ú °°½À´Ï´Ù.
B0 A1 B3 AA B4 D9 00
Ȥ½Ã Áö±Ý Á¦°¡ »ç¿ë ÁßÀÎ ¿µ¹® À©µµ¿ìÀÇ ¹®Á¦°¡ ¾Æ´Ò ±î ½Í¾î, vmware¸¦ ÅëÇØ ÇÑ±Û À©µµ¿ì 98 SE¿Í ÇÑ±Û À©µµ¿ì 2000À» »ç¿ëÇØ Å×½ºÆ®ÇØ ºÁµµ °°Àº °á°ú°¡ ³ª¿À´õ±º¿ä.
À̹ø¿¡´Â ¸í½ÃÀûÀ¸·Î MBCS ¹®ÀÚ¿À» À¯´ÏÄÚµå(USC-16 little endian)·Î º¯È¯ÇØ wchar_t¿¡ ÀúÀåÇØ º¸¾Ò½À´Ï´Ù.
setlocale(LC_ALL, ".949"); char *str2 = "°¡³ª´Ù"; wchar_t wstr2_uni[blocksize]; memset(wstr2_uni, 0, blocksize * sizeof(wchar_t)); mbstowcs(wstr2_uni, str2, _mbstrlen(str2)); --- wstr2_uniÀÇ ¸Þ¸ð¸® ´ýÇÁ --- 00 AC 98 B0 E4 B2 00 00
ÀÌ·¸°ÔÇÏ´Ï Ã³À½¿¡ ¿øÇß´ø ¹Ù µ¥·Î USC-16 little endian À¸·Î ÀúÀåµÇ´õ±º¿ä.
°á·ÐÀº
±×°Ç ±×·¸´Ù°í Ä¡°í, ¾Æ½¬¿î Á¡Àº Á¦°¡ º» À¯´ÏÄÚµå °ü·Ã ¹®¼µé¿¡¼´Â L”" ¸®ÅÍ·²ÀÇ ÀÌ¿Í °°Àº Ư¼º¿¡ ´ëÇÑ ³»¿ëÀº ã¾Æº¼ ¼ö ¾ø¾ú´Ù´Â °ÍÀÔ´Ï´Ù.
¾Æ¸¶µµ Á¤ÀÛ À¯´ÏÄÚµåÀÇ »ç¿ëÀÌ ÇÊ¿äÇÑ ¾ð¾î±ÇÀÇ »ç¶÷µéÀÌ ¾´ °ÍÀÌ ¾Æ´Ñ ´ëºÎºÐ ¿µ¹®(ȤÀº ¶óƾ°è¿ ¹®ÀÚ)À» »ç¿ëÇÏ´Â »ç¶÷µéÀÌ ÀÛ¼ºÇÑ ±ÛÀ̰ųª ÀÌ ±ÛÀ» ¹ø¿ªÇÑ ±ÛÀ̱⠶§¹®ÀÏ °ÍÀ̶ó »ý°¢ÇØ º¾´Ï´Ù.
ps) ¼ö½Ê³â°£ÀÇ ¼ÒÇÁÆ®¿þ¾îÀÇ ¿ª»ç°¡ Èê·¶Áö¸¸ ¾ÆÁ÷µµ globalizationÀº ´Þ¼ºÇϱâ Èûµç ³ôÀº ¼öÁØÀÇ ¿ä±¸»çÇ×ÀÌ ¾Æ´Ò±î ÇÕ´Ï´Ù.
update
Ȥ½Ã³ª Çϰí #pragma¸¦ Á¶»çÇØº¸´Ù #pragma setlocale()¸¦ ¹ß°ßÇß½À´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ÁöÁ¤ÇØÁá´õ´Ï L”" ¸®ÅÍ·² ¹®Á¦°¡ ¸ðµÎ ÇØ°áµÇ´Â ±º¿ä.
#pragma setlocale(".949")
Á» ´õ ¾Ë¾Æº¸°í Æ÷½ºÆ®ÇÒ °É ±×·¨½À´Ï´Ù.
ÇÁ·ÎÆÄÀÏ·¯´Â ÇÁ·Î±×·¥ÀÇ ½ÇÇ༺´ÉÀ» ÃøÁ¤ÇÏ´Â µð¹ö±ë µµ±¸ÀÔ´Ï´Ù. ÇÁ·ÎÆÄÀÏ·¯¸¦ ÅëÇØ ÇÁ·Î±×·¥ÀÇ ½Ã°£À» ¸¹ÀÌ Àâ¾Æ ¸Ô´Â ºÎºÐ(¹öƲ³Ø)À» ã¾Æ³»¾î ±× ºÎºÐÀ» ÃÖÀûÈÇϹǷμ ÇÁ·Î±×·¥ÀÇ ½ÇÇ༺´ÉÀ» Çâ»ó ½Ãų ¼ö ÀÖ½À´Ï´Ù. ÇÁ·ÎÆÄÀÏ·¯¿¡ ´ëÇØ¼´Â ¿©±â¸¦ Âü°íÇϼ¼¿ä.
Àû´çÇÑ ÇÁ·ÎÆÄÀÏ·¯¸¦ ã¾Æº¸´ø Áß AMD CodeAnalyst¸¦ ¾Ë°Ô µÇ¾ú½À´Ï´Ù. ÇÁ·ÎÆÄÀÏ·¯¿¡ °æÇèÀÌ ¾ø´Â Àú °°Àº »ç¶÷¿¡°Ô´Â »ç¿ëÇϱ⠽¬¿ö ÁÁÀº °Í °°½À´Ï´Ù. ÄÚµåÀÇ ¼öÁ¤À̳ª º°µµÀÇ ¼³Á¤ ¾øÀ̵µ ´ÜÁö µð¹ö±× ¸ðµå¿¡¼ ºôµåÇÏ°í µ¹¸®±â¸¸ ÇÏ¸é °¢ ÇÔ¼öµéÀÇ ½ÇÇà ½Ã°£ÀÌ ³ª¿À´Â ±º¿ä. ¹°·Ð ´õ ¸¹Àº ±â´ÉÀÌ ÀÖ´Â °Í °°Àº µ¥ ¾ÆÁ÷ »ìÆì º¸Áö´Â ¾Ê¾Ò½À´Ï´Ù.
´Ù¸¥ ÇÁ·ÎÆÄÀÏ·¯¿¡ ºñÇØ ±â´ÉÀÌ ±×´ÙÁö ¿ì¼öÇÑ °ÍÀº ¾Æ´Ñ µí º¸ÀÌÁö¸¸, Àü¿¡´Â ÆÛÆ÷¸Õ½º Æ©´×À» ÀÌ·± µµ±¸·ê »ç¿ëÇÏÁö ¾Ê°í ±×³É ÁüÀÛÀ¸·Î¸¸ Çß´ø °Í¿¡ ºñÇϸé ÀÌ Á¤µµ ±â´ÉÀ̸é ÀÏ´Ü ¾ÆÁÖ ¸¸Á·½º·´½À´Ï´Ù.
±×¸®°í AMD¿¡¼ ¸¸µé¾ú´Ù°í Intel CPU ¸Ó½Å¿¡¼ ¾È µ¹¾Æ °¡´Â °ÍÀº ¾Æ´Ï´õ±º¿ä
VS.Net 2003ÀÇ Visual Analyzer¸¦ »ç¿ëÇØ º¸·Á°í ½Ãµµ Çß½À´Ï´Ù¸¸ ³»°øÀÌ µþ¸®´Â Áö¶ó ¹» ¾î¶»°Ô ÇØ¾ßÇÒ Áö msdnÀ» ÇÑÂü ºÁ¾ßµÇ°Ú´õ±º¿ä. ±×·¡¼ ¹Ù·Î ¼Õ ³ù½À´Ï´Ù. VS 2005 Team System¿¡µµ ÄÚµå ÇÁ·ÎÆÄÀÏ·¯°¡ Æ÷Ç﵂ ÀÖ´Ù°í Çϴµ¥ ¾ÆÁ÷±îÁö´Â °ËÅäÇØ º¼ »ý°¢Àº ¸øÇϰí ÀÖ½À´Ï´Ù. Ȥ½Ã VS 2005 Team System¿¡ °ü½ÉÀ» °®°Ô µÈ´Ù¸é ÀÌ ºí·Î±×µéÀ» Âü°íÇÏ´Â °Íµµ ÁÁ°Ú½À´Ï´Ù.
Á¦´Ð½º´ÔÀÌ codian.netÀÇ “ƲÀ» ±ú±âÀ§ÇØ” ³Ñ±ä À½¾Ç¹ÙÅæ¿¡ ´ëÇÑ ´äº¯ÀÔ´Ï´Ù. ¸î ³âÀü ºÎÅÍ À½¾ÇÀ» °ÅÀÇ µèÁö ¾Ê¾Æ¼ º°·Î ÇÒ ¸»Àº ¾ø½À´Ï´Ù¸¸ ¾ÆÁÖ ¾È µè°í ÀÖ´Â °ÍÀº ¾Æ´Ï¶ó ÇѸ¶µð ÇØº¾´Ï´Ù.
Just Take My Heart - Mr. Big / Lean Into It (1991)
Saturation Point - Marty Friedman / Dragon’s Kiss (1988)
Love Bites - Def Leppard / Hysteria(1987)
À̺°À̶ó´Â À̸§ - M.C The Max / Solitude Love (2004)
Super star - Áê¾ó¸® / Super star(2005)
Áê¾ó¸®ÀÇ ½´ÆÛ½ºÅ¸´Â µéÀ¸·Á°í ÇÑ °Ç ¾Æ´Ñµ¥ Âü ¸¹ÀÌ µé¸®´õ±º¿ä. TV¿¡¼µµ ¸¹ÀÌ ³ª¿À±¸¿ä. ¿äÁòÀº °î¸íµµ ¸ð¸£°í ±×³É µè´Â °ÍµéÀÌ ¸¹½À´Ï´Ù. ³ª¿ÇÑ ´Ù¼¸ °îÀº ±×³ª¸¶ °î¸íÀÌ »ý°¢³ª´Â °ÍµéÀÔ´Ï´Ù.
dongwon ÀÚ³×´Â Æ÷½ºÆÃÀ» ¾ÆÁÖ Æ÷±âÇÑ °Ç°¡?
sumanpark ÀúÀÇ ¼±°îÀÇ ÆøÀ» ³ÐÇô ÁֽŠºÐ Áß ÇѸíÀÔ´Ï´Ù.
mars ¿¹ÀüºÎÅÍ ±Ã±ÝÇß¾ú´Âµ¥ ¹°¾îº¼ ±âȸ°¡ ¾ø¾ú½À´Ï´Ù. À̹ø¿¡ Á» ¾Ë·ÁÁÖ¼¼¿ä.
inel ¸¶Ä§ ÃÖ±Ù Æ÷½ºÆ®°¡ À½¾Ç °ü·ÃÀ̳׿ä.
hochan À½¾Ç ¹ÙÅæÀ» ¹ÞÀ»±î ±Ã±ÝÇϱº¿ä.
À½¾Çµµ Á» µè°í »ì¾Æ¾ß °Ú½À´Ï´Ù.
ps) ÃÖ±Ù Æ÷½ºÆ®µéÀÌ ¹«·áÇÑ ³»¿ë »ÓÀÌ¿´´Âµ¥ ±âºÐ ÀüȯÀÌ µÇ´Â °Í °°½À´Ï´Ù. Á¦´Ð½º´Ô¿¡°Ô °¨»çÇÕ´Ï´Ù.