BOOL °ú bool

C++¿¡ bool ŸÀÔÀÌ ºôÆ®ÀÎÀ¸·Î Ãß°¡µÇ±â ÀÌÀü¿¡´Â booleanÀ» ³ªÅ¸³»±â À§ÇØ °ª°ú ŸÀÔÀ» Á¤ÀÇÇÏ¿© »ç¿ëÇß¾ú½À´Ï´Ù. ´ÙÀ½Àº Win32¿¡¼­ »ç¿ëÇÏ´Â boolean Á¤ÀÇÀÔ´Ï´Ù.

#ifndef FALSE
#define FALSE  0
#endif

#ifndef TRUE
#define TRUE  1
#endif

typedef int BOOL;

Àúµµ ±×µ¿¾È ´ç¿¬È÷(!) boolÀÇ »ç¿ëÀ» ´õ ¼±È£ÇØ ¿Ô½À´Ï´Ù. BOOL°ú °ÅÀÇ ´Ù¸§¾øÀÌ »ç¿ëÇÒ ¼ö ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó ÄÄÆÄÀÏ·¯¿¡¼­ Áö¿øÇϴ ŸÀÔÀ̹ǷΠtype-saftyÀº ´ç¿¬È÷ µû¶ó¿À´Â ÀåÁ¡À̰ÚÁö¿ä.

BOOL °ú boolÀÇ Â÷ÀÌÁ¡À̶ó¸é boolÀ» BOOL·Î ŸÀÔ º¯È¯ÇÒ ¶§ ÄÄÆÄÀÏ·¯¿¡¼­ ¼º´É °æ°í¸¦ ³½´Ù´Â Á¤µµ·Î¸¸ ¾Ë°í ¹«½ÉÈ÷ »ç¿ëÇØ ¿À´Ù µ¥ÀÌÅÍ Ç¥ÇöÀ» À§ÇÑ ¸Þ¸ð¸® »ç¿ëÀÌ Æ²¸®´Ù´Â »ç½ÇÀ» ¾Ë¾Ò½À´Ï´Ù. BOOLÀÇ °æ¿ì int·Î Á¤ÀǵǾî ÀÖÀ¸¹Ç·Î ´ç¿¬È÷ 4¹ÙÀÌÆ®, boolÀÇ °æ¿ì´Â 1¹ÙÀÌÆ®ÀÇ °ø°£¿¡ ÀâÈ÷°Ô µÈ´Ù´Â °ÍÀÔ´Ï´Ù.

»ç½Ç ÀÌ·± Â÷ÀÌ´Â Å©°Ô ½Å°æ¾µ ¸¸ÇÑ °Íµµ ¸øµÇÁö¸¸ ´ÙÀ½°ú °°Àº °æ¿ì¿¡´Â ½É°¢ÇÑ ¹ö±×¸¦ ¸¸µé¾î ³¾ ¼ö ÀÖ½À´Ï´Ù.

´å³Ý P/Invoke ¿¡¼­ System.BooleanÀ» BOOL·Î ¸¶¼£¸µÇÒ °ÍÀÌ³Ä bool·Î ¸¶¼£¸µÇÒ °ÍÀ̳Ŀ¡ µû¶ó MarshalAs ¼Ó¼º°ªÀ» ´Ù¸£°Ô ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. BOOL·Î ¸¶¼£¸µÇϱâ À§Çؼ­´Â

[[StructLayout(LayoutKind.Sequential)]
protected struct MyStruct {
    [MarshalAs(UnmanagedType.Bool)]
    public bool aBool;
};

°ú °°ÀÌ ±âº»ÀûÀ¸·Î Á¦°øµÇ´Â UnmanagedType.BoolÀ» »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ boolÀÇ °æ¿ì¿¡´Â

[[StructLayout(LayoutKind.Sequential)]
protected struct MyStruct {
    [MarshalAs(UnmanagedType.I1)]
    public bool aBool;
};

°ú °°ÀÌ UnmanagedType.I1À» Àû¾îÁÖ´Â ¼¼½ÉÇÑ ÁÖÀǰ¡ ÇÊ¿äÇÕ´Ï´Ù.

ÀϹÝÀûÀÎ Interop/¸¶¼£¸µ °ü·Ã ¹®¼­µé¿¡ ¼³¸íµÇ¾î ÀÖ´Â µ¥·Î UnmanagedType.BoolÀ» »ç¿ëÇÏ°Ô µÇ¸é bool ŸÀÔ º¯¼ö¿¡´Â true³ª false¿¡ »ó°ü¾øÀÌ Ç×»ó false°¡ Àü´ÞµË´Ï´Ù.

Äڵ忡 ÀÌ·± ¹ö±×°¡ µé¾î ÀÖ´Ù¸é ã¾Æ³»±â ÈûµéÁö ¾Ê°Ú½À´Ï±î? Àú´Â ÀÌ ¹ö±×¸¦ ã´Âµ¥ 2~3½Ã°£ Á¤µµ ÇãºñÇÑ °Í °°½À´Ï´Ù. ¤Ð_¤Ð

2005-08-25 11:47 AM
permalink

Ä¿¸ÇÆ®¿Í Æ®·¢¹é rss (0)

Æ®·¢¹é ÁÖ¼Ò: http://codian.net/wp/archives/284/trackback/

Ä¿¸ÇÆ® ÀÛ¼º