¾î´ÀºÐÀÌ ÇÊ¿äÇϽôٰí ÇÏ¿©¼ À̰÷¿¡ °£´ÜÈ÷ ±ÛÀ» ¿Ã¸®°Ú½À´Ï´Ù.
^^; Àúµµ ¸ÞŸÇÁ·Î±×·¡¹Ö °°Àº°É ÁÁ¾ÆÇÏÁöµµ Àß ÇÏÁöµµ ¾ÊÁö¸¸ ±×³É Á¶±Ý ¼öÁ¤Çؼ Àû´çÈ÷? ºÙ¿© ¾²°í ÀÖ¾ú½À´Ï´Ù.
C++ºô´õ¿¡ Àß ºÙÁö ¾Ê´Â °¡Àå Å« ÀÌÀ¯´Â... °á±¹ illegal ÇÑ ¹®¹ý »ç¿ë ¶§¹®ÀÔ´Ï´Ù.
(Âü°í·Î.. Å×½ºÆ®ÇÑ ¹öÀüÀº C++ºô´õ 2009ÀÔ´Ï´Ù.)
¹¹ ÇØ¼®ÀÇ Â÷À̰ÚÁö¸¸... ¾î¶µç ±ñ±ñÇÑ ºô´õ°¡ Àú ó·³ Ç¥ÁØ¿¡ ¹«°ü½ÉÇÑ;; »ç¶÷À» ¹àÇôÁÖ´Ï ÁÁ±ä ÇÕ´Ï´Ù¸¸...
°¡²û ¹Ù·Î°¥ ±æÀ» µ¹¾Æ°¡°í ½ÍÀº °æ¿ì°¡ ÀÖµí... Á» °©°©Çϱ⵵ ÇÕ´Ï´Ù.
½Ã°£ µÇ½Ã´Â ºÐÀº Á» µ¹¾Æ°¡´Â ±æ(¼öÁ¤;;)À» ¾Ë·ÁÁּŵµ ÁÁ°í... Èì.. ¾Ïư;;
LuaTinker0.5b¸¦ ¹ÞÀ¸¼Å¼ Çì´õÆÄÀÏ Á¶±Ý°ú ÄÄÆÄÀÏ ¿É¼ÇÀ» Á¶±Ý ¼öÁ¤ ÇÏ½Ã¸é µË´Ï´Ù.
´ëºÎºÐ ¸í½ÃÀûÀÌÁö ¾Ê°Å³ª ¿¹¿Ü»óȲ°ú °ü·ÃµÈ °ÍÀÔ´Ï´Ù. --;;
ù¹øÂ° ¼öÁ¤ (lua_tinker.h)
//------------------------------------------------------------------------------
// read a value from lua stack
template< typename T >
T read(lua_State *L, int index) { return lua2type< T >(L, index); }
template<> char* read< char* >(lua_State *L, int index);
template<> const char* read< const char* >(lua_State *L, int index);
template<> char read< char >(lua_State *L, int index);
template<> unsigned char read< unsigned char >(lua_State *L, int index);
template<> short read< short >(lua_State *L, int index);
template<> unsigned short read< unsigned short >(lua_State *L, int index);
template<> long read< long >(lua_State *L, int index);
template<> unsigned long read< unsigned long >(lua_State *L, int index);
template<> int read< int >(lua_State *L, int index);
template<> unsigned int read< unsigned int >(lua_State *L, int index);
template<> float read< float >(lua_State *L, int index);
template<> double read< double >(lua_State *L, int index);
template<> bool read< bool >(lua_State *L, int index);
template<> void read< void >(lua_State *L, int index);
template<> __int64 read< __int64 >(lua_State *L, int index);
template<> unsigned __int64 read< unsigned __int64 >(lua_State *L, int index);
template<> table1 read< table1 >(lua_State *L, int index);
//------------------------------------------------------------------------------
ÅÛÇø´ read ÇÔ¼ö°¡ Á¤ÀǵǾî Àִµ¥ ƯÈ(specilize) ¹öÀüÀ» ¸í½ÃÀûÀ¸·Î ±¸ºÐÇØ ÁÖ¾î¾ßÇÕ´Ï´Ù.
±âÁ¸ ÄÚµå´Â ÇÔ¼ö¸í ¿·¿¡ read< char* > ó·³ ¸í½ÃÇÏÁö ¾Ê°í ±×³É read¸¸ ÀûÇôÀֳ׿ä.
¾Ïư.. ±ñ±ñÇÑ ºô´õ´Â ÀÌ°É ÁöÀûÇÏ°í ¿·¿¡¼ »ßÁ®¼ Èï! Èï! °Å¸®°í Àֳ׿ä. --;
µÎ¹øÂ° ¼öÁ¤(lua_tinker.h)
//------------------------------------------------------------------------------
// functor
template< typename T1=void, typename T2=void, typename T3=void, typename T4=void, typename T5=void >
struct functor
{
template< typename RVal >
static int invoke(lua_State *L) { push(L,upvalue_< RVal(*)(T1,T2,T3,T4,T5) >(L)(read< T1 >(L,1),read< T2 >(L,2),read< T3 >(L,3),read< T4 >(L,4),read< T5 >(L,5))); return 1; }
// template<>
// static int invoke< void >(lua_State *L) { upvalue_< void(*)(T1,T2,T3,T4,T5) >(L)(read< T1 >(L,1),read< T2 >(L,2),read< T3 >(L,3),read< T4 >(L,4),read< T5 >(L,5)); return 0; }
};
//------------------------------------------------------------------------------
¿ª½Ã ½ºÆä¼È¶óÀÌÁî ºÎºÐÀÔ´Ï´Ù.
±×·±µ¥ ¿©±â¼´Â ±×³É »ßÁö´Â ¼öÁØÀÌ ¾Æ´Ï¶ó ¼±À» ±ß°í´Â ¿òÁ÷ÀÌÁú ¾Ê³×¿ä.. -_-;
Äڵ带 º¸½Ã¸é ¾Æ½Ã°ÚÁö¸¸... ÁÖ¼®À¸·Î ¸·¾Ò½À´Ï´Ù. -_ -;;
ÁÖ¼®À» ÇÏ´Â ¼ø°£ ·ç¾ÆÆÃÄ¿ÀÇ ¾î¶²? ±â´ÉÀÌ ¸·È÷´Â °ÍÀε¥... ÇѸ¶µð·Î void ¸®ÅÏ C/C++ ÇÔ¼ö/¸â¹ö¸¦ ·ç¾Æ¿Í ¿¬°á ÇÒ ¼ö ¾ø½À´Ï´Ù. ¤Ð.¤Ð...
(Á¦³×¸¯ ÄÚµå ³»¿¡¼ÀÇ ½ºÆä¼È¶óÀÌÁî´Â ºÒ¹ý! À̶ó¸é¼... ¤Ð.¤Ð... ÀÌ·¡¼ Á¤µµ´Â ¾î·Á¿î±æ... Á¤µµ°¡ ¸Â´Â°ÇÁö --;;)
ÀÌ·± ¿À·ù·Î ÁÖ¿í ºñ½ÁÇÑ ±¸¹®ÀÌ ÀÖÀ¸´Ï ¸ðµÎ ¼öÁ¤Çϸé 10°³ Âë µÉ°ÍÀÔ´Ï´Ù.
¼¼¹øÂ° ¼öÁ¤(C++ ÄÄÆÄÀÏ ¿É¼Ç ¼öÁ¤)
Project -> Option -> C++ Compiler -> Compatibility -> Explicit template specialization as member function = TRUE
ÀÌ ¿É¼ÇÀ» ÄÑÁÖ¸é µË´Ï´Ù.
¿ª½Ã³ª ¸â¹ö ÇÔ¼ö·ÎÀÇ ½ºÆä¼È¶óÀÌÁ ¸·Àº °ÍÀε¥... ÀÌ°Ç ¿É¼ÇÀ¸·Î Á¦°øÇϳ׿ä.
ÀÌ ¿É¼ÇÀ» º¸´Ï Á¶¸¸°£ À§¿¡¼ ¼öÁ¤µÇ°í ÁÖ¼®À¸·Î ¸·Àº(¤Ð.¤Ð) ºÎºÐµµ ¿É¼Ç¿¡ Ãß°¡µÉ µí ÇÕ´Ï´Ù.
·ç¾ÆÆÃÄ¿ Sample3, 5¹øÀ» º¸¸é void ¸®ÅÏ ÇÔ¼ö´Â Àû´çÈ÷ int¸®ÅÏÀ¸·Î ¹Ù²Ù°í return 0; °°Àº ´õ¹Ì? Äڵ带 ³ÖÀ¸¸é
Àß µ¿ÀÛÇÕ´Ï´Ù.
·ç¾Æ´Â Àß ÄÄÆÄÀÏ µÇ´Ï ¹®Á¦ ¾øÀ»µí Çϰí... ·ç¾ÆÆÃÄ¿´Â Ȥ½Ã ¸ô¶ó¼ ÷ºÎÇÕ´Ï´Ù.
¿¹Á¦¸¦ Æ÷ÇÔÇÏ´Â main.cpp¿Í ¿¬°üµÈ sample1~5.lua ÆÄÀϵµ ÀÖ½À´Ï´Ù.
¸ÞŸ ÇÁ·Î±×·¡¹Ö¿¡ °ü½ÉÀ» °¡Áö°í ½ÍÀº ºÐÀ̶ó¸é... ÀÌ·± ¼øÀ¸·Î º¸¼¼¿ä. (½Ã°£ Àß? Áö³ª°©´Ï´Ù. --;;)
1. C++ ÅÛÇø´ ¸ÞŸ ÇÁ·Î±×·¡¹Ö
2. Modern C++ Design
Èì;; ´Ù¸¥ Ã¥µµ Àֳ׿ä. ^^; (¼Á¡¿¡ ³î·¯ °¡ºÁ¾ß°Ú½À´Ï´Ù. ~_~;;) <-- ÀÌ Ã¥ÀÌ º¸´Âµ¥ ´õ ÁÁ³×¿ä. ^^;
http://kangcom.com/sub/view.asp?sku=200812020004
·ç¾ÆÆÃÄ¿
http://gpgstudy.com/gpgiki/LuaTinker
GPGStudy ·ç¾Æ °ü·Ã
http://gpgstudy.com/gpgiki/TitleSearch?auto_redirect=1&s=Lua
¸ÁÄ¡ ´ÔÀÌ ¾²½Å ±Û :
: Àú¹ø¿¡ ÀÚÀ¯°Ô½ÃÆÇ¿¡ ½ºÅ©¸³Æ®´Â ÁÖ·Î ¹«¾ùÀ» ¾²½Ã³ª¿ä¶ó´Â ´©±º°¡ÀÇ Áú¹®¿¡ ´ëÇÑ ´ë´äÀ» º¸¸é¼
: lua¸¦ óÀ½ ¾Ë°ÔµÇ¾ú½À´Ï´Ù.
: ±×·¡¼ ÀÌÆ²Àü¿¡ µåµð¾î lua.org¿¡ µé¾î°¡¼ 5.14¹öÁ¯ ¼Ò½º ´Ù¿î¹Þ¾Æ¼, ºô´õ 2007¿¡ ÄÄÆÄÀÏÇØ¼ libÆÄÀÏ ¸¸µé°í,
: °Ë»ö ÂÞ¿í ÇØº¸´Ï C³ª C++¿¡¼ lua¸¦ È£ÃâÇÏ´Â ¿¹Á¦°¡ ÀÖ´õ±º¿ä. ±×´ë·Î µû¶óÇÏ´Ï ¿¡·¯°¡ ³ª¼ Á¶±Ý ¼öÁ¤ÇÏ´Ï,
: luaÆÄÀÏ ÀÐ¾î¼ ÇÔ¼ö¸¦ ½ÇÇàÇϰí, lua¿¡ ÀÖ´Â º¯¼ö°ªÀ» Àоî¿À´õ±º¿ä.
:
: ½ºÅ©¸³Æ® óÀ½ ½áº» Àú¿¡°Ô´Â ÇÁ·Î±×·¥ Á¦ ¿µ¿ª¿¡ m&aÇØ¼ ´Ù¸¥ ¸ÚÁø ȸ»ç¸¦ ÀμöÇѰÍó·³ ±â»Ú´õ±º¿ä.
:
: lua¸¦ ·¡ÇÎÇÑ ¹¹ ¿©·¯°¡Áö ¶óÀ̺귯¸®³ª ¿ÀǼҽºµéÀÌ ÁñºñÇÏÁö¸¸ ÀÏ´Ü lua°¡ °¡Áö°í ÀÖ´Â ¼Ò½º¾çÀÌ ¾ó¸¶
: Å©Áö¾Ê°í º¹ÀâÇÏÁö ¾Ê¾Æ lua¼Ò½º¸¦ Á÷Á¢ µ¹·Áº»°Ì´Ï´Ù.
:
: ¾ÆÁ÷ lua¸¦ Á¦´ë·Î Ȱ¿ëÇϱ⿡´Â ¾Õ±æÀÌ Çè³ÇϰÚÁö¸¸ ±×·¡µµ lua¶ó´Â °ÍÀ» ¾Ë°Ô µÇ¾ú°í µÇ´Â°É ´«À¸·Î Á÷Á¢ ºÃ´Ù´Â°ÍÀÌ ±â»Þ´Ï´Ù.
:
: ÇÏ¿©Æ° Æ÷·³À» ÅëÇØ¼ ÇѼö ¹è¿ö°©´Ï´Ù.
|
º¹ ¹ÞÀ¸½Ç°Å¿¹¿ä..