用luaplus试验了下,想把简单的C++类映射到lua脚本中不难,但是复杂一点的,比方说类的聚合、继承等,比较麻烦。我试验了两天,用表中表来实现是可以的,但自己弄太麻烦了。说到底,我只是想用一下而已,不是想从头弄一个系统。
用CEGUI时发现它用了tolua++,从网上DOWN了源码(1.0.92),支持Lua5.1。我用VS2005,用源码包里的sln顺利编译出tolua++.exe。lib据说要用第三方的scons来弄,嫌麻烦,我直接建了个VC动态库工程,将src/lib下的文件加进来,修改了tolua++.h,重定义一下TOLUA_API,编译通过。
#ifndef TOLUA_API #ifdef _WINDLL #define TOLUA_API __declspec(dllexport) #else #define TOLUA_API extern #endif #endif
这只是个简单的定义,如果在其它的DLL中用tolua++.h会出问题(我直接用了_WINDLL宏来判断),自己定义一个其它的宏就可以了。
我要用动态链接库,不想用静态库。下了lua5.1.3的源码包,编译动态库。
编译时都选择MD,不选MT,后者在项目中有多个模块时容易出问题,尤其是有的模块用MD,有的模块用MT时更容易出问题。我那天就因为这个出了400多个错误,几乎抓狂。
这样我现在有了tolua++.exe,lua5.1.dll,tolua++.dll,以及对应的lib文件。可以进行试验了。