参考链接:https://www.jianshu.com/p/7cc9ca7efe18http://www.360doc.com/content/16/0830/21/7014874_587111940.shtml# 零.原理lua与其他语言的交互,都是基于栈的结构来交互的。栈的元素为lua中的值(table,string,nil等8种基本类型)如果用正数索引来表示,则栈底为1,索引往上
转载 2024-04-25 15:23:08
199阅读
Clua交互解释CLua交互部分称为C API,C API是一个C代码和Lua代码进行交互的函数集,主要由以下部分组成:1、读取Lua全局变量的函数;2、调用Lua函数的函数;3、运行Lua代码片段的函数;4、注册C函数然后可以在Lua中被调用的函数;C语言和Lua之间的数据通信交换,是通过在CLua之间建立一个虚拟的栈,几乎所有的API调用都是对栈上的值进行操作,所有的数据交换也是通过这
转载 2024-03-18 17:23:14
49阅读
热更新原理: 就是C#可以和lua进行交互 lua可以重写C#的函数luaC#是怎么进行交互的? lua与其他语言交互,都是通过操作虚拟栈交流的。而操作虚拟栈最原始的方法就是通过luac语言的api 那其它语言是怎么访问到这个虚拟栈 怎么能确保访问到的是同一个栈? 可以为 一个lua文件单独开一个虚拟栈 不管你C#和Lua怎么交互 交互的对象首先是一个文件 文件肯定是单独的 lua调用C#:
转载 2024-04-16 20:56:47
62阅读
lua中使用c动态库,像luacjson(支持unicode),luasocket,都是以动态链接库的形式在lua中使用的,至于怎么写这些动态链接库很少有教程说到,下面我就说说如何把c文件编译成动态库。首先,假设需要在lua中调用一个在c中实现的求和函数,函数名add(a,b)。我给这个测试库取名为dylib,它包含一个函数add。lua中这样使用:local dylib = require "d
转载 2024-03-17 15:06:38
36阅读
概述 近来研究Lua这个东西,官网为http://www.lua.org/ 主要的目的是通过lua来对短信发送过来的业务报文转换为业务系统支持的格式,设计的思想是Lua进行业务报文的转换,报文的通讯采用c实现,因为要通过C实现SGIP协议报文的封装和到后台业务的转换。 C调用Lua函数 首先要进行Lua的初始化,这个主要是lua_open和luaL_openlibs函数
原创 2011-03-24 15:43:09
8365阅读
2点赞
1评论
extern "C" {#include "lua.h"#include "lualib.h"#include "lauxlib.h"} #include <iostream>#include <string>using namespace std;  &
转载 精选 2016-01-04 19:54:32
522阅读
1、LuaC++交互1、luac++交互机制是基于一个虚拟栈,C++和lua之间的所有数据交互都通过这个虚拟栈来完成,无论何时C++想从lua中调用一个值,被请求的值将会被压入栈,C++想要传递一个值给Lua,首选将整个值压栈,然后就可以在Lua中调用。 2、lua中提供正向和反向索引,区别在于证书永远是栈底,负数永远是栈顶。在这里插入图片描述2、基础练习编译指令:g++ test.cpp -
原创 精选 2024-09-06 10:07:21
209阅读
阅读本篇文章之前,请先阅读 lua入门级这篇文章,了解C++与lua之间是通过栈来交换数据的;下面介绍几个后面会用到的函数:C语言向栈写入或读取函数:lua_push**(L,value); //**表示数据类型 一般为nil number string ……lua_to**(L,index) //...
原创 2021-09-14 11:31:18
280阅读
extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } #include #include using namespace std; int ma...
转载 2014-05-27 16:42:00
148阅读
2评论
extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } #include #include using namespace std; int main() { //Lua示例...
转载 2014-05-27 16:42:00
91阅读
2评论
最近项目很忙好久没更新了。虽然一直在用Xlua,也对lua实现原理有稍微的了解。但仍然不是很理解C#到底是如何和lua进行交互的,比如在lua中写一段CS.UnityEngine.GameObject到底是如何调用到c#中的。上周也是浅浅的学习了下,今天来记录下解析过程。入口:LuaEnv.Init()string init_xlua = @" local met
转载 6月前
26阅读
 在目前的cocos2dx项目开发中,基本只有2个编辑器可选。一个是现在官方推荐的CocosCreator, 但它并不支持我们常用的lua脚本。另一个是CocosStudio, 官方已经不再对其维护,且使用也并不太方便。那么有没有什么方法能让编辑器更好的接入lua脚本,又能方便地自定义控件呢?  想要编辑器对lua脚本更好地支持,那么我们的编辑器可以用lua来开发,这样编辑器可以直接分析lua代码
转载 2024-03-29 14:48:00
71阅读
(1)lua程序 (2)C++程序(头文件) (3)C++程序(.cpp文件) (4)C++程序(main文件) 注:程序中的注释已经很详尽,这里不在对代码进行解释。下载安装lua之后,在vs2010中还要引入相应的库。截图如下:
转载 2019-06-02 14:25:00
174阅读
2评论
现在,我们一起探索一下如何将lua寄宿到C++中。宿主的实现我们在LuaWithCPPTest项目下,查看Source.cpp代码如下:#include #include #include using namespace std;extern "C"{ #include #includ...
转载 2015-01-27 14:39:00
186阅读
2评论
工作中遇到了LuaC++交互的需求,发现有很多之前遗漏的知识点,现一一补上。由于是下班时间写的,代码例子没有贴,有时间再加上目
原创 2022-04-15 15:05:12
392阅读
要将C++中的对象类型映射到Lua中,就不得不要先了解Lua面向对象的机制。在这里,我们先看一下Lua面向对象的实现基础——metatable,再以此实现C++对象到Lua的映射。Lua面向对象不得不先提一下Lua的几种函数写法,普通函数有两种写法:如果要将一个普通函数赋给一个表,有如下写法:如果函...
转载 2015-01-27 14:46:00
144阅读
2评论
通过前几篇,我们已经对LuaC API有了一定的了解,如lua_push*、lua_is*、lua_to*等等。用C++调用Lua数据时,我们主要运用lua_getglobal与lua_push*配合以达到目的。现在我们来试试用Lua调用C++数据。C++数据类型映射到LuaC++中数据类型有这么...
转载 2015-01-27 14:45:00
232阅读
2评论
这段代码把字符串中的key=value字符串全部转换成XML格式<key>value</key> 在这个例子中,C++程序通过调用lua_pushstring把C字符串压入栈顶,lua_setglobal的作用是把栈顶的数据传到Lua环境中作为全局变量。 执行代码完成后,使用lua_getgloba
转载 2016-07-28 16:01:00
78阅读
2评论
(一) LuaC函数什么样类型的函数可以被Lua调用typedef int (*lua_CFunction) (lua_State *L);符合类型的函数怎样处理后才可以被Lua调用使用lu...
转载 2015-05-28 17:31:00
72阅读
2评论
Lua数组①数组是key值从1开始并连续递增的table。②索引号是从1开始,不是从0开始。lua还提供了一些只针对数组进行操作的API,如下:①LUALIB_API lua_Integer (luaL_len) (lua_State *L, int idx);luaL_len 使用于数组,可得到数组元素个数;以数字形式返回给定索引处值的“长度”; 它等价于在 Lua...
原创 2022-11-29 20:06:04
455阅读
  • 1
  • 2
  • 3
  • 4
  • 5