lua
文章平均质量分 83
风云来
这个作者很懒,什么都没留下…
展开
-
简单C++调用lua函数及C++和lua相互函数调用小例子
//简单C++调用lua函数,改自网络//test.cpp[cpp] view plaincopy#include extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } /*Lua解释器指针*/ lua_Stat转载 2013-04-11 19:43:08 · 984 阅读 · 0 评论 -
lua源码分析之函数调用
1、受保护的函数调用2、不受保护的函数调用(1)luaD_precall 环境保存(2)luaD_poscall 环境恢复3、函数调用使用实例(1)不受保护的函数调用(2)受保护的函数调用函数调用分为受保护调用和不受保护的调用。(1)受保护的函数调用受保护的函数调用用C层面的堆栈来保护和恢复状态。受保护的函数调用可以看成是一个 C 层面意义上原创 2014-04-22 13:30:11 · 3798 阅读 · 0 评论 -
lua 源码分析之线程对象lua_State
思路: lua_State 中放的是 lua 虚拟机中的环境表、注册表、运行堆栈、虚拟机的上下文等数据。 从一个主线程(特指 lua 虚拟机中的线程,即 coroutine)中创建出来的新的 lua_State 会共享大部分数据, 但会拥有一个独立的运行堆栈。所以一个线程对象拥有一个lua_State。(lua 的coroutine的使用参考: http://blog.csdn.n原创 2014-04-22 13:29:26 · 14130 阅读 · 0 评论 -
c++与lua交互
1 配置工作环境a 下载LUA安装包b 然后,解压用于WIN32下的安装包。放在一个盘的目录下如:C:/LUA50c 打开VC++6.0,点击Project下的Setting中将include目录设为C:/LUA50。 并在LIB库中加入lua+lib.lib ,并将C:/LUA50下的Lua+lib.dll ,Lua+lib.lib拷贝到程序当前所在目录vc下使用lua原创 2013-06-28 08:42:52 · 1865 阅读 · 0 评论 -
lua的c api 总结
extern "C" {#include "lua.h"#include "lualib.h"#include "lauxlib.h"} #include #include using namespace std; int main(){ //Lua示例代码 char *szLua_code = "r = st原创 2014-02-01 12:02:11 · 1592 阅读 · 0 评论 -
Lua源码分析之对象内存
Lua是动态类型的语言,即是说类型附着于值而不变量[1]. Lua的八种基本类型空,布尔,数值,字符串,表,函数和用户数据.所有类似的值都是虚拟机的第一类值. Lua解释器将其表示成为标签联合(tagged union).如下面代码示例所示:lobject.h : 56/*** Union of all Lua values*/typedef union {原创 2013-05-02 18:32:06 · 1709 阅读 · 0 评论 -
Lua源码分析 -- 虚拟机以及指令解释
Lua首先将源程序编译成为字节码,然后交由虚拟机解释执行.对于每一个函数,Lua的编译器将创建一个原型(prototype),它由一组指令及其使用到的常量组成[1].最初的Lua虚拟机是基于栈的.到1993年,Lua5.0版本,采用了基于寄存器的虚拟机,使得Lua的解释效率得到提升,体系结构与指令系统与虚拟机和指令相关的文件主要有两个: lopcodes.c和lvm.c.从名称可以转载 2013-05-02 19:01:57 · 5120 阅读 · 0 评论 -
游戏服务器之lua脚本系统
现在做游戏的较多用脚本 ,可以热加载代码。脚本系统的目的是方便c++和lua之间的相互调用,实现c++和lua的 交互。原创 2014-01-01 17:47:23 · 6603 阅读 · 0 评论 -
Lua中的元表和元方法
元表可以修改一个值的行为,使其在面对一个非预定义的操作时执行一个指定操作。元方法会检测一个操作中的值是否有元表,以及元表是否定义了操作的元方法。如两个table相加,先检查两者之一是否有元表,之后检查是否有一个叫“__add”的字段,若找到,则调用对应的值。“__add”等字段,其对应的值(一般是一个函数或是table)就是“元方法”。原创 2013-05-02 20:37:53 · 2427 阅读 · 0 评论 -
Lua程序数据类型及其使用
声明下:以下是别人文章中的内容。Robert Z2010-1初阶数据类型函数表简单对象的实现简单继承数据类型八种基本类型:数值(number)内部以double表示字符串(string)总是以零结尾,但可以包含任意字符(包括零),因此并不等价于C字符串,而是其超集。布尔(boolean)只有“true”或者原创 2014-01-18 16:59:09 · 1416 阅读 · 0 评论 -
lua与c的详细堆栈说明
static void stackDump (lua_State *L){int i;int top = lua_gettop(L);for (i = 1; i int t = lua_type(L, i);switch (t) {case LUA_TSTRING:printf("%s", lua_tostring(L, i));break;case LUA原创 2014-04-16 13:54:41 · 3746 阅读 · 0 评论 -
C/C++与Lua之间进行数据函数交互以及解决“PANIC: unprotected error in call to Lua API
本站文章均为 李华明Himi 原创,转载务必在明显处注明:(作者新浪微博: @李华明Himi ) 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/lua1/1343.html 在使用Cocos2d-x 时候,难免需要C/C++调用Lua函数、数据或Lua调用C/C++函数,那么本篇讲详细介绍C/C++与Lua转载 2013-04-21 16:17:35 · 3848 阅读 · 0 评论 -
使用Lua CJSON库进行encode与decode操作完成对Json数据转化
本站文章均为 李华明Himi 原创,转载务必在明显处注明:(作者新浪微博: @李华明Himi ) 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/lua1/1337.html 本篇介绍如何在lua中对数据进行json的encode与decode,这里Himi采用cjson进行。首先简单介绍下cjson:Lua转载 2013-04-21 16:24:17 · 6413 阅读 · 0 评论 -
Lua的upvalue和闭包
Lua中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值一样(只不过函数类型值的数据主要是一条条指令而已),所以在函数体中仍然可以定义函数。假设函数f2定义在函数f1中,那么就称f2为f1的内嵌(inner)函数,f1为f2的外包(enclosing)函数,外包和内嵌都具有传递性,即f2的内嵌必然是f1的内嵌,而f1的外包也一定是f2的外包。内嵌函数可以访问外包原创 2014-05-07 15:41:38 · 24038 阅读 · 7 评论