Has C# lost its point?

Has C# lost its point? - Grumpy Old Programmer

C/C++ -> VB -> C# -> C++/CLI… ÀÌÁ¦ ÇѹÙÄû µ¹¾Ò±º¿ä. :)

2005-05-31 7:41 PM
comments/trackbacks(0) | permalink

±¹³» ÃÖÀú°¡ ·ÎÁöÅØ Űº¸µå, ¸¶¿ì½º LX 700

ÁöÀÎÀÌ ¿î¿µÇÏ´Â »çÀÌÆ®¿¡¼­ Àü¿¡ Æ÷½ºÆÃÇß¾ú´ø ·ÎÁöÅØ Cordless Desktop LX 700¸¦ 11¸¸¿ø(¹«·á¹è¼Û)¿¡ ÆÇ¸ÅÇÑ´Ù°í ÇÕ´Ï´Ù. ±¹³» ÃÖÀú°¡¶ó°í ÇÕ´Ï´Ù.

±¸¸ÅÇϽ÷Á°í Çß´Ù¸é À̹øÀÌ ÁÁÀº ±âȸÀÏ µí ÇÕ´Ï´Ù.

2005-05-26 3:15 PM
comments/trackbacks(1) | permalink

L ¸®ÅÍ·²°ú À¯´ÏÄÚµå ÀÎÄÚµù

c++¿¡¼­ ¹®ÀÚ¸¦ ÀúÀåÇϱâ À§ÇØ 8 ºñÆ® Å©±âÀÇ char ŸÀÔ À̿ܿ¡ 16 ºñÆ® Å©±â(À©µµ¿ì¿¡¼­´Â 16 ºñÆ®¸¦ À¯´Ð½º °è¿­¿¡¼­´Â 32 ºñÆ®¸¦ »ç¿ëÇÑ´Ù°í ÇÕ´Ï´Ù.)ÀÇ ¿ÍÀ̵å ij¸¯Å͸¦ ÀúÀåÇÏ´Â wchar_t ŸÀÔÀ» Á¦°øÇϰí ÀÖ½À´Ï´Ù. wchar_t ŸÀÔ¿¡´Â ¹®ÀÚÀÇ MBCS/DBCS ¹× UCSUTF-16(À©µµ¿ì¿¡¼­´Â little endianÀ» ±âº»ÀûÀ¸·Î »ç¿ëÇÕ´Ï´Ù.) ÀÎÄÚµùÀ» ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç, wchar_t¿Í ÇÔ²² ¿ÍÀ̵å ij¸¯ÅÍ/¹®ÀÚ¿­ »ó¼ö¸¦ ÁöÁ¤Çϱâ À§ÇØ “L”À» »ç¿ëÇÕ´Ï´Ù.


¹®ÀÚ¿­ÀÇ ÀÎÄÚµùÀº ¼ÒÇÁÆ®¿þ¾îÀÇ globalization À» À§ÇØ ÇÊ¿äÇÑ ¿©·¯ À̽´Áß Çϳª·Î MSDN ¹× ±¸±Û °Ë»öÀ» ÅëÇØ ÀÌ ³»¿ëÀ» ´Ù·ç´Â ¸¹Àº À¥ ÆäÀÌÁö¸¦ °Ë»öÇØ º¼ ¼ö ÀÖ½À´Ï´Ù. ±× Áß À¯´ÏÄÚµå¿Í ij¸¯ÅÍ ¼ÂÀÇ ÀÌÇØ¸¦ °³¹ßÀÚÀÇ ÇʼöÇ׸ñÀ¸·Î ÁöÀûÇϰí ÀÖ´Â Joel SpolskyÀÇ ±ÛÀ» º¸´Â °ÍÀÌ µµ¿òÀÌ µÉ µíÇÕ´Ï´Ù. ÀÌ ±ÛÀº ¾ó¸¶Àü jrogue´ÔÀÌ ¹ø¿ªÇÑ “Á¶¿¤ ¿Â ¼ÒÇÁÆ®¿þ¾î”¸¦ ÅëÇØ Çѱ۷εµ ÀÐ¾î º¼ ¼ö ÀÖ½À´Ï´Ù.

¶Ç The Complete Guide to C++ Strings, Part I - Win32 Character Encodings µµ Âü°íÇÒ ¸¸ÇÑ ¹®¼­ÀÔ´Ï´Ù. ÀÌ ¹®¼­´Â Çѱ۷εµ ¹ø¿ªµÇ¾î ÀÖ½À´Ï´Ù.([1], [2])

´ÙÀ½Àº 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”"»ó¼ö´Â ¹®ÀÚ¿­À» À¯´ÏÄÚµå·Î ÀÎÄÚµùÇÏÁö ¾Ê´Â´Ù. ´Ù¸¸ ¹®ÀÚ¿­À» 16ºñÆ® wchar_t·Î ÀúÀåÇÒ »ÓÀÌ´Ù. (ÀÌ·¸°Ô ÀúÀåµÇ¾îµµ ¿µ¹® Ascii´Â À¯´ÏÄÚµå ÀÎÄÚµù°ú °°Àº °á°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.)
  • À¯´ÏÄÚµå·Î ÀÎÄÚµùµÈ ¹®ÀÚ¿­À» ¾ò±â À§Çؼ­´Â MBSC·Î µÈ ¹®ÀÚ¿­À» À¯´ÏÄÚµå·Î º¯È¯ÇØ »ç¿ëÇØ¾ß µÈ´Ù.

±×°Ç ±×·¸´Ù°í Ä¡°í, ¾Æ½¬¿î Á¡Àº Á¦°¡ º» À¯´ÏÄÚµå °ü·Ã ¹®¼­µé¿¡¼­´Â L”" ¸®ÅÍ·²ÀÇ ÀÌ¿Í °°Àº Ư¼º¿¡ ´ëÇÑ ³»¿ëÀº ã¾Æº¼ ¼ö ¾ø¾ú´Ù´Â °ÍÀÔ´Ï´Ù.

¾Æ¸¶µµ Á¤ÀÛ À¯´ÏÄÚµåÀÇ »ç¿ëÀÌ ÇÊ¿äÇÑ ¾ð¾î±ÇÀÇ »ç¶÷µéÀÌ ¾´ °ÍÀÌ ¾Æ´Ñ ´ëºÎºÐ ¿µ¹®(ȤÀº ¶óƾ°è¿­ ¹®ÀÚ)À» »ç¿ëÇÏ´Â »ç¶÷µéÀÌ ÀÛ¼ºÇÑ ±ÛÀ̰ųª ÀÌ ±ÛÀ» ¹ø¿ªÇÑ ±ÛÀ̱⠶§¹®ÀÏ °ÍÀ̶ó »ý°¢ÇØ º¾´Ï´Ù.

ps) ¼ö½Ê³â°£ÀÇ ¼ÒÇÁÆ®¿þ¾îÀÇ ¿ª»ç°¡ Èê·¶Áö¸¸ ¾ÆÁ÷µµ globalizationÀº ´Þ¼ºÇϱâ Èûµç ³ôÀº ¼öÁØÀÇ ¿ä±¸»çÇ×ÀÌ ¾Æ´Ò±î ÇÕ´Ï´Ù.

update

Ȥ½Ã³ª Çϰí #pragma¸¦ Á¶»çÇØº¸´Ù #pragma setlocale()¸¦ ¹ß°ßÇß½À´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ÁöÁ¤ÇØÁá´õ´Ï L”" ¸®ÅÍ·² ¹®Á¦°¡ ¸ðµÎ ÇØ°áµÇ´Â ±º¿ä.

#pragma setlocale(".949")

Á» ´õ ¾Ë¾Æº¸°í Æ÷½ºÆ®ÇÒ °É ±×·¨½À´Ï´Ù.

2005-05-24 9:26 PM
comments/trackbacks(3) | permalink

Profiler

ÇÁ·ÎÆÄÀÏ·¯´Â ÇÁ·Î±×·¥ÀÇ ½ÇÇ༺´ÉÀ» ÃøÁ¤ÇÏ´Â µð¹ö±ë µµ±¸ÀÔ´Ï´Ù. ÇÁ·ÎÆÄÀÏ·¯¸¦ ÅëÇØ ÇÁ·Î±×·¥ÀÇ ½Ã°£À» ¸¹ÀÌ Àâ¾Æ ¸Ô´Â ºÎºÐ(¹öƲ³Ø)À» ã¾Æ³»¾î ±× ºÎºÐÀ» ÃÖÀûÈ­ÇϹǷμ­ ÇÁ·Î±×·¥ÀÇ ½ÇÇ༺´ÉÀ» Çâ»ó ½Ãų ¼ö ÀÖ½À´Ï´Ù. ÇÁ·ÎÆÄÀÏ·¯¿¡ ´ëÇØ¼­´Â ¿©±â¸¦ Âü°íÇϼ¼¿ä.

Àû´çÇÑ ÇÁ·ÎÆÄÀÏ·¯¸¦ ã¾Æº¸´ø Áß AMD CodeAnalyst¸¦ ¾Ë°Ô µÇ¾ú½À´Ï´Ù. ÇÁ·ÎÆÄÀÏ·¯¿¡ °æÇèÀÌ ¾ø´Â Àú °°Àº »ç¶÷¿¡°Ô´Â »ç¿ëÇϱ⠽¬¿ö ÁÁÀº °Í °°½À´Ï´Ù. ÄÚµåÀÇ ¼öÁ¤À̳ª º°µµÀÇ ¼³Á¤ ¾øÀ̵µ ´ÜÁö µð¹ö±× ¸ðµå¿¡¼­ ºôµåÇÏ°í µ¹¸®±â¸¸ ÇÏ¸é °¢ ÇÔ¼öµéÀÇ ½ÇÇà ½Ã°£ÀÌ ³ª¿À´Â ±º¿ä. ¹°·Ð ´õ ¸¹Àº ±â´ÉÀÌ ÀÖ´Â °Í °°Àº µ¥ ¾ÆÁ÷ »ìÆì º¸Áö´Â ¾Ê¾Ò½À´Ï´Ù.

´Ù¸¥ ÇÁ·ÎÆÄÀÏ·¯¿¡ ºñÇØ ±â´ÉÀÌ ±×´ÙÁö ¿ì¼öÇÑ °ÍÀº ¾Æ´Ñ µí º¸ÀÌÁö¸¸, Àü¿¡´Â ÆÛÆ÷¸Õ½º Æ©´×À» ÀÌ·± µµ±¸·ê »ç¿ëÇÏÁö ¾Ê°í ±×³É ÁüÀÛÀ¸·Î¸¸ Çß´ø °Í¿¡ ºñÇϸé ÀÌ Á¤µµ ±â´ÉÀ̸é ÀÏ´Ü ¾ÆÁÖ ¸¸Á·½º·´½À´Ï´Ù.

±×¸®°í AMD¿¡¼­ ¸¸µé¾ú´Ù°í Intel CPU ¸Ó½Å¿¡¼­ ¾È µ¹¾Æ °¡´Â °ÍÀº ¾Æ´Ï´õ±º¿ä :)

VS.Net 2003ÀÇ Visual Analyzer¸¦ »ç¿ëÇØ º¸·Á°í ½Ãµµ Çß½À´Ï´Ù¸¸ ³»°øÀÌ µþ¸®´Â Áö¶ó ¹» ¾î¶»°Ô ÇØ¾ßÇÒ Áö msdnÀ» ÇÑÂü ºÁ¾ßµÇ°Ú´õ±º¿ä. ±×·¡¼­ ¹Ù·Î ¼Õ ³ù½À´Ï´Ù. VS 2005 Team System¿¡µµ ÄÚµå ÇÁ·ÎÆÄÀÏ·¯°¡ Æ÷Ç﵂ ÀÖ´Ù°í Çϴµ¥ ¾ÆÁ÷±îÁö´Â °ËÅäÇØ º¼ »ý°¢Àº ¸øÇϰí ÀÖ½À´Ï´Ù. Ȥ½Ã VS 2005 Team System¿¡ °ü½ÉÀ» °®°Ô µÈ´Ù¸é ÀÌ ºí·Î±×µéÀ» Âü°íÇÏ´Â °Íµµ ÁÁ°Ú½À´Ï´Ù.

2005-05-20 3:13 PM
comments/trackbacks(0) | permalink

À½¾Ç¹ÙÅæ

Á¦´Ð½º´ÔÀÌ codian.netÀÇ “ƲÀ» ±ú±âÀ§ÇØ” ³Ñ±ä À½¾Ç¹ÙÅæ¿¡ ´ëÇÑ ´äº¯ÀÔ´Ï´Ù. ¸î ³âÀü ºÎÅÍ À½¾ÇÀ» °ÅÀÇ µèÁö ¾Ê¾Æ¼­ º°·Î ÇÒ ¸»Àº ¾ø½À´Ï´Ù¸¸ ¾ÆÁÖ ¾È µè°í ÀÖ´Â °ÍÀº ¾Æ´Ï¶ó ÇѸ¶µð ÇØº¾´Ï´Ù.

  • ÄÄÇ»ÅÍ¿¡ ÀÖ´Â À½¾Ç ÆÄÀÏÀÇ Å©±â´Â ÃÑ?

    337MB. ¸îÀÏ Àü¿¡ ÄÄÇ»Å͸¦ »õ·Î ¼³Ä¡Çϱ⵵ Çß°í, ¿äÁò¿¡´Â ÄÄÀ¸·Î MP3¸¦ µè´Â ´ë½Å CD¸¦ µè°í ÀÖ½À´Ï´Ù. ±×·¡¼­ ¿¹Àüº¸´Ù´Â ¾çÀÌ ¸Å¿ì Àû½À´Ï´Ù. ¿äÁò¿¡´Â ÄÄÇ»ÅÍ·Î À½¾ÇµéÀ» ±âȸ°¡ ±×¸® ¸¹Áö ¾Ê¾Æ ¾ÕÀ¸·Îµµ MP3º¸´Ù´Â CD¸¦ µéÀ¸·Á°í ÇÕ´Ï´Ù. Âü, Àú´Â MP3 Ç÷¡À̾ ¾ø½À´Ï´Ù. -_-;
  • ÃÖ±Ù¿¡ »ê CD´Â?

    ±â¾ïÀÌ °¡¹°°¡¹° ÇÕ´Ï´Ù. ±× ¸¸Å­ ¿À·¡µÈ ÀÏÀ̶󼭿ä. ¾Æ¸¶ 4³âÀü Âë ȸ»ç ¾Õ CD °¡°Ô¿¡¼­ »ê Journey / Journey (1975)ÀÎ µí ÇÕ´Ï´Ù. Á¦°¡ µéÀ»·Á°í »ê°Ô ¾Æ´Ï¶ó ¼±¹°ÇÒ ÀÏÀÌ À־ »ò´ø ±â¾ïÀÌ ³³´Ï´Ù. Àú´Â ±× ¾Ù¹üÀ» µé¾îº¸Áö´Â ¸øÇß½À´Ï´Ù.
  • Áö±Ý µè°í ÀÖ´Â ³ë·¡´Â?

    ¾ó¸¶Àü¿¡ ¾Æ´Â »ç¶÷¿¡°Ô º¹»ç ¹ÞÀº ±èÁ¶ÇÑÀÇ ½Åº¸ me, myself, my music¿¡ ù¹øÂ° Æ®·¢ÀÇ “¹ö¸®°í ¹ö·Áµµ”¸¦ µè°í ÀÖ½À´Ï´Ù. º¹»ç´Â ºÒ¹ýÀΰ¡¿ä? ¿¹Àü¿¡´Â ´©°¡ LP »ç¸é °øÅ×ÀÌÇÁ µé°í°¡¼­ º¹»çÇØ ¿Í µè°ï Çß¾ú´Âµ¥¿ä.

    ¿äÁò MP3°¡ ³ÑÃÄ ³ª´Âµ¥µµ, µéÀ» ¼ö ÀÖ´Â À½¾Çµµ ¸¹Àº µ¥µµ À½¾Çµè±â°¡ ¿¹Àü°ú °°Àº ¸ÀÀº ¾ø¾îÁø °Í °°½À´Ï´Ù.
  • Áñ°Ü µè´Â ³ë·¡ 5°îÀº?

    Áñ°Ü µè´Â ´Ù°í ÇÒ ¸¸Å­ Ç÷¡ÀÌ È½¼ö´Â ¸¹Áö´Â ¾Ê½À´Ï´Ù¸¸ ¿äÁò ±×³ª¸¶ Á» µè´Â °Íµé Àº …
    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¿¡¼­µµ ¸¹ÀÌ ³ª¿À±¸¿ä. ¿äÁòÀº °î¸íµµ ¸ð¸£°í ±×³É µè´Â °ÍµéÀÌ ¸¹½À´Ï´Ù. ³ª¿­ÇÑ ´Ù¼¸ °îÀº ±×³ª¸¶ °î¸íÀÌ »ý°¢³ª´Â °ÍµéÀÔ´Ï´Ù.

  • ¹ÙÅæÀ» ¹ÞÀ» 5¸íÀº?

    dongwon ÀÚ³×´Â Æ÷½ºÆÃÀ» ¾ÆÁÖ Æ÷±âÇÑ °Ç°¡?

    sumanpark ÀúÀÇ ¼±°îÀÇ ÆøÀ» ³ÐÇô ÁֽŠºÐ Áß ÇѸíÀÔ´Ï´Ù.

    mars ¿¹ÀüºÎÅÍ ±Ã±ÝÇß¾ú´Âµ¥ ¹°¾îº¼ ±âȸ°¡ ¾ø¾ú½À´Ï´Ù. À̹ø¿¡ Á» ¾Ë·ÁÁÖ¼¼¿ä.

    inel ¸¶Ä§ ÃÖ±Ù Æ÷½ºÆ®°¡ À½¾Ç °ü·ÃÀ̳׿ä.

    hochan À½¾Ç ¹ÙÅæÀ» ¹ÞÀ»±î ±Ã±ÝÇϱº¿ä.

À½¾Çµµ Á» µè°í »ì¾Æ¾ß °Ú½À´Ï´Ù.

ps) ÃÖ±Ù Æ÷½ºÆ®µéÀÌ ¹«·áÇÑ ³»¿ë »ÓÀÌ¿´´Âµ¥ ±âºÐ ÀüȯÀÌ µÇ´Â °Í °°½À´Ï´Ù. Á¦´Ð½º´Ô¿¡°Ô °¨»çÇÕ´Ï´Ù.

2005-05-20 12:58 PM
comments/trackbacks(7) | permalink