当前位置:  软件>C/C++软件

lua 的封装 luaTinker

    来源:    发布时间:2015-01-21

    本文导语:  LuaTinker 的作者是Kwon-il Lee韩国人写的,最新的版本是0.2.C,这个C++ wrapper For Lua能够方便和 快捷与C/C++通信,LuaTinker参考了luabind和luaplus的特征写的,虽然没有bindlua和luaplus这本强大 和提供很多功能,LuaTinker的实现只有两个文件...

LuaTinker 的作者是Kwon-il Lee韩国人写的,最新的版本是0.2.C,这个C++ wrapper For Lua能够方便和

快捷与C/C++通信,LuaTinker参考了luabind和luaplus的特征写的,虽然没有bindlua和luaplus这本强大

和提供很多功能,LuaTinker的实现只有两个文件,但是LuaTinker提供的基本能够满足大部的要求,用户

还可以对它进一步的扩充,而且用于游戏上特为方便,以下是LuaTinker使用C++结构和类的例子:

// 一个基类
struct base
{
 base() {}

 const char* is_base(){ return "this is base"; }
};

// 一个测试类
class test : public base
{
public:
 test(int val) : _test(val) {}
 ~test() {}

 const char* is_test(){ return "this is test"; }

 void ret_void() {}
 int ret_int()   { return _test;   }
 int ret_mul(int m) const { return _test * m;  }
 A get()    { return A(_test);  }
 void set(A a)   { _test = a.value;  }
 int _test;
};

int main()
{
 // 注册base类型到LUA
 lua_tinker::class_("base")
  .def("is_base", &base::is_base)
  ;
 
 // 注册test类型到LUA,注册test的成员函数和成员变量
 lua_tinker::class_("test")
  .inh() // 注册继承类
  .def(lua_tinker::constructor()) //注册构造函数
  .def("is_test", &test::is_test)           // 注册成员函数
  .def("ret_void", &test::ret_void)
  .def("ret_int", &test::ret_int)
  .def("ret_mul", &test::ret_mul)
  .def("get", &test::get)
  .def("set", &test::set)
  .def_readwrite("_test", &test::_test) // 注册成员变量
  ;

 test g_test(11);
 
 lua_tinker::decl("g_test", &g_test);
 
}

// Lua脚本

temp = test(4)  创建一个test类
print(temp._test) 打印test的_test成员

print(g_test)     
print(g_test._test) 打印g_test的成员变量_test
print(g_test:is_test()) 输出信息  
print(g_test:ret_int()) 返回g_test的成员变量_test

这么几句就能够方便的使用C/C++定义的结构或类


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Lua的JSON处理器 Lua CJSON
  • 控制CPU亲缘性的Lua模块 lua-affinity
  • 分布式lua开发框架 distri.lua
  • 求教用过lua的大侠关于在C中嵌入lua脚本的连接问题?
  • 安卓编辑和运行lua代码 android-lua-run
  • Lua VM
  • Lua OS
  • 数据库 iis7站长之家
  • lua-nginx-module
  • lua网络库 nodelua
  • nginx中使用lua脚本的方法
  • c++遍历lua table示例
  • Apache的Lua模块 mod_pLua
  • Lua的C++增强版本 LuaPlus
  • Lua解析器的JS实现 Emscripten
  • Lua 实现的 Java 虚拟机 luje
  • Eclipse的Lua插件 LuaEclipse
  • Lua for IntelliJ IDEA
  • 最强大的Lua C++ Bind LuaBind
  • 使用 Lua 来开发 iOS 应用 Wax for iOS


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3