luaTinker

lua 的封装
授权协议 未知
开发语言 C/C++ Lua
所属分类 程序开发、 其他开发相关
软件类型 开源软件
地区 不详
投 递 者 充煌
操作系统 Linux
开源组织
适用人群 未知
 软件概览

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>("base")
  .def("is_base", &base::is_base)
  ;
 
 // 注册test类型到LUA,注册test的成员函数和成员变量
 lua_tinker::class_<test>("test")
  .inh<base>() // 注册继承类
  .def(lua_tinker::constructor<int>()) //注册构造函数
  .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++定义的结构或类

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

  • Lua也用了有段时间了,lua跟c++的交互以前用的是luabind,但是需要boost库,太大了,我的需求也没那么多。所以项目引入lua的时候,我决定找个简单点的库,这时候发现了lua_tinker,很小巧,就两个文件.h和.cpp,引入也很方便。网上看了看教程,我要的功能都有了,就是它了。 用了这么长时间,也没仔细研究研究,也就是机械的用而已,这样可不行。 花了两天时间研究它,下面是一点点心得

  • 棒子git上的模样更新,but已经有大侠修改了它的源码,可以运行啦! // lua_tinker.h // // LuaTinker - Simple and light C++ wrapper for Lua. // // Copyright (c) 2005-2007 Kwon-il Lee (zupet@hitel.net) // // please check Licence.txt f

  •   LuaTinker的作者是Kwon-il Lee韩国人写的,最新的版本是0.2.C,这个C++ wrapper For Lua能够方便和 快捷与C/C++通信,LuaTinker参考了luabind和luaplus的特征写的,虽然没有bindlua和luaplus这本强大 和提供很多功能,LuaTinker的实现只有两个文件,但是LuaTinker提供的基本能够满足大部的要求,用户 还可以对它

  • LuaTinker是一套还不错的C++代码和Lua代码的绑定库,作者是韩国人Kwon-il Lee,作者应该是参考了LuaBind后,为了简化和避免过重而实现的。其官网在http://gpgstudy.com/gpgiki/LuaTinker ,但可惜全部是韩文的,而最新的代码可以在Git上下载,https://github.com/zupet/LuaTinker 。对比LuaBind,LuaPl

  • LuaTinker的作者是Kwon-il Lee韩国人写的,最新的版本是0.2.C,这个C++ wrapper For Lua能够方便和 快捷与C/C++通信,LuaTinker参考了luabind和luaplus的特征写的,虽然没有bindlua和luaplus这本强大 和提供很多功能,LuaTinker的实现只有两个文件,但是LuaTinker提供的基本能够满足大部的要求,用户 还可以对它进一

  • LuaTinker的bug和缺陷 LuaTinker是一套还不错的C++代码和Lua代码的绑定库,作者是韩国人Kwon-il Lee,作者应该是参考了LuaBind后,为了简化和避免过重而实现的。其官网在http://gpgstudy.com/gpgiki/LuaTinker ,但可惜全部是韩文的,而最新的代码可以在Git上下载,https://github.com/zupet/LuaTinker

  • uatinker 提供的 lua与 C++ 函数的相关接口函数 ,这样便可以屏蔽底层函数,大大提升了了开发效率,但是luatinker是韩国人写的 所以函数的说明是韩文的,所以我把经常用到函数的功能写下了,方便新手使用 lua_State *l= lua_open() 建立lua栈用于和C交互 luaopen_base(lua_State*L) 打开基本函数库  lua_tinker::def(L

  •  一、  -- C++类注册函数(LuaTinker) 的lua栈操作: -- lua栈内容(执行到pop语句) 栈地址 <--执行语句 space_name[name] = t1 -- (2b8) -- lua_rawset(L, -4); -- t1[__gc] = destroyer<T>

 相关资料
  • 封装将类的某些信息隐藏在类内部,不允许外部程序直接访问,只能通过该类提供的方法来实现对隐藏信息的操作和访问。例如:一台计算机内部极其复杂,有主板、CPU、硬盘和内存, 而一般用户不需要了解它的内部细节,不需要知道主板的型号、CPU 主频、硬盘和内存的大小,于是计算机制造商将用机箱把计算机封装起来,对外提供了一些接口,如鼠标、键盘和显示器等,这样当用户使用计算机就非常方便。 封装的特点: 只能通过规

  • Go的封装 go中的封装和java的不太一样,在go里面是没有java中的class,不过可以把struct看成一个类,封装可以简单地看作对struct的封装,如下 type EnvelopeA struct { envelope string } type EnvelopeB struct { envelope string } 封装有一个最重要的优点,是阻止了外部调用方对对象

  • 6.6. 封装 一个对象的变量或者方法如果对调用方是不可见的话,一般就被定义为“封装”。封装有时候也被叫做信息隐藏,同时也是面向对象编程最关键的一个方面。 Go语言只有一种控制可见性的手段:大写首字母的标识符会从定义它们的包中被导出,小写字母的则不会。这种限制包内成员的方式同样适用于struct或者一个类型的方法。因而如果我们想要封装一个对象,我们必须将其定义为一个struct。 这也就是前面的小

  • prototype对象 构造函数的缺点 prototype属性的作用 原型链 constructor属性 Object.getPrototypeOf方法 Object.create方法 isPrototypeOf方法 prototype对象 构造函数的缺点 JavaScript通过构造函数生成新对象,因此构造函数可以视为对象的模板。实例对象的属性和方法,可以定义在构造函数内部。 function

  • 除了url_stat()函数, 包装器操作中在const char *label元素之前的每个操作都可以用于激活的流实例上. 每个函数的意义如下: stream_opener() 实例化一个流实例. 当某个用户空间的fopen()函数被调用时, 这个函数将被调用. 这个函数返回的php_stream实例是fopen()函数返回的文件资源句柄的内部表示. 集成函数比如file(), file_get

  • My97DatePicker是由html js css封装的一个非常好用的日历,该工程把My97DatePicker简单的封装成一个ios的日历控件,方便调用,如果需要可自行扩展。支持ARC。 [Code4App.com]

  • 主要内容:1、public,2、private,3、protected,4、internal,5、protected internalC# 是一门面向对象编程语言,面向对象编程语言有三大特性,分别是封装、 继承和 多态。所谓封装就是将一个或多个项目(函数)集合在一个单元中,这个单元称之为类,我们可以根据需要通过访问权限修饰符来设定类中成员的范围和可见性。C# 中的访问权限修饰符有以下几种: public:公共的,所有对象都可以访问,但是需要引用命名空间; private:私有的,类的内部才可以访

  • 主要内容:Python 类如何进行封装?不光是 Python,大多数面向对象编程语言(诸如 C++、 Java 等)都具备 3 个典型特征,即封装、继承和多态。其中,本节重点讲解 Python 类的封装特性,继承和多态会在后续章节给大家做详细讲解。 简单的理解封装(Encapsulation),即在设计类时,刻意地将一些属性和方法隐藏在类的内部,这样在使用此类时,将无法直接以“类对象.属性名”(或者“类对象.方法名(参数)”)的形式调用