介绍LuaPlus: 好用的Lua For C++扩展(修订)
LuaPlus是Lua的C++增强,也就是说,LuaPlus本身就是在Lua的源码上进行增强得来的。用它与C++进行合作,是比较好的一个选择。
LuaPlus目前版本为:LuaPlus for Lua 5.01 Distribution Build 1080 (February 28,2004)。大家可以到 http://luaplus.org/?站点下载: 源码?? ( http://wwhiz.com/LuaPlus/LuaPlus50_Build1081.zip) 目标码 ( http://wwhiz.com/LuaPlus/LuaPlus50_Build1081_Win32Binaries.zip) 介绍LuaPlus: 好用的Lua For C++扩展??????沐枫网志? [由于lua内核升级到5.1,因此,luaplus也同样跟着升级。最新的luaplus可以通过svn获取,地址 svn://svn.luaplus.org/LuaPlus/work51, 我将在下面说明,如何使用LuaPlus,以及如何更方便的让LuaPlus与C++的类合作无间。 1. 调用Lua脚本 ? 2. 与Lua脚本互相调用 ?为Lua脚本设置变量
GetGlobals().SetNumber(
myvalue
,?
123456
?获得Lua变量的值
int
?myvalue?
=
?state
GetGlobal(
).GetInteger();
???? ?下面是一个简单的C++类:????
?
?Logger
? ?导入到Lua脚本:
????LuaClass
Logger
(state)
? ?在Lua中使用Logger类(1):
DoString(
? ?在Lua中使用Logger类(2):
m?=?Logger2(10);
?调用构造函数?Logger::Logger(int)
m:lm('Hello?World?2');
n?=?Logger3(m);
?调用构造函数?Logger::Logger(Logger*)
n:lm('Hello?World?3');
m:SetValue(11);
4. 将一组C函数归类到Lua模块 ? 同上面一样,我采用LuaPlusHelper.h来简化:
????LuaModule(state,0)">mymodule
)
5. 使用Lua的Table数据类型 ?在Lua中创建Table
????LuaObject?table?
GetGlobals().CreateTable(
mytable
);
?? ?也可以使用table作为key和value:
nexttable
)
? 获得Table的内容:
????LuaObject?t2?
GetGlobals(
?m?
?t2.GetByName(
).GetInteger();
???? ? ?LuaStateOwner?state;
篇尾 上面我只是简单的举一些例子来说明LuaPlus以及LuaPlusHelper的使用方法,具体文档请参见LuaPlus。 需要下载LuaPlusHelper,请点这里: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |