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½Ã°£ Á¤µµ ÇãºñÇÑ °Í °°½À´Ï´Ù. ¤Ð_¤Ð
permalink
