总结来说, 从 C++ 中获得 Lua 的值, 需要如下 4 步: 1) [必须] lua_getglobal 定位到栈中的变量. 2) [可选] lua_pushnumber/lua_pushstring 设置需要取得哪个字 ...
这是一个几年前写的对lua的访问封装,当时的项目仅提供了最基本的lua访问接口:调用lua函数,向lua注册标准格式的C 函数. 本来我想引进luabind,但luabind相对又过于复杂,并不是所有功能都是我需要的,并且还要为此引入庞大boost.最终还是决定 按需求编写一个简单的封装库. 首先简单列一下我的需求: 可以注册任意类型的C 函数到lua中 可以方便的调用lua函数,方便的访问lua ...
2012-04-20 22:36 10 5285 推荐指数:
总结来说, 从 C++ 中获得 Lua 的值, 需要如下 4 步: 1) [必须] lua_getglobal 定位到栈中的变量. 2) [可选] lua_pushnumber/lua_pushstring 设置需要取得哪个字 ...
之前在《C/C++和Lua是如何进行通信的?》一文中简单的介绍了lua与宿主之间的通信。简单的说两种不同的语言之间数据类型不一样又如何进行数据交换呢?那就是lua_State虚拟栈,通过栈操作和lua库函数,我们很轻松就能完成两者之间的数据交换。 开始之前,明确几个问题 ...
1、新建Win32控制台DLL项目; 2、添加测试头文件--------------------------------------#include "lua.h"#include "lauxlib.h"#include "lualib.h ...
引言 通过前几篇,我们已经对Lua的C API有了一定的了解,如lua_push*、lua_is*、lua_to*等等。用C++调用Lua数据时,我们主要运用lua_getglobal与lua_push*配合以达到目的。现在我们来试试用Lua调用C++数据。 C++数据类型映射到Lua ...
引言 之前做手游项目时,客户端用lua做脚本,基本所有游戏逻辑都用它完成,玩起来有点不爽,感觉“太重”了。而我又比较偏服务端这边(仅有C++),所以热情不高。最近,加入了一个端游项目,客户端和服务器都用了lua,各种玩法是让我眼界大开。在此,写下自己的心得与体会,希望能与大家共同探讨进步 ...
上一篇我们搭建好了整个的项目环境,现在,我们一起探索一下如何将lua寄宿到C++中。 宿主的实现 我们在LuaWithCPPTest项目下,查看Source.cpp代码如下: #include <iostream> #include < ...
引言 要将C++中的对象类型映射到Lua中,就不得不要先了解Lua面向对象的机制。在这里,我们先看一下Lua面向对象的实现基础——metatable,再以此实现C++对象到Lua的映射。 Lua面向对象 不得不先提一下Lua的几种函数写法,普通函数有两种写法: 如果要将一个普通函数赋 ...
通过上一篇的热身,我们对C++调用lua变量有了一个认识,现在让我们再深入一点,去探索一下如何调用lua的函数、表。 Lua与宿主通讯的关键——栈 lua是个动态脚本语言,它的数据类型如何映射到C++这种静态类型语言中?lua是有GC机制的,这与C++手动管理内存相悖。如何解决这些问题 ...