lua_call族函数解释, lua和c通信的基础: 栈, TValue 这些东西是平时遇到的, 觉得有一定的价值, 所以记录下来, 以后遇到类似的问题可以查阅, 同时分享出来也能方便需要的人, 转载请注明来自RingOfTheC[ring.of.the.c@gmail.com] 打算记录一些lua_api, 可能会觉得lua文档中已经说的很清
转载 2023-07-16 11:51:43
293阅读
3.1 - 堆栈 3.2 - 堆栈尺寸 3.3 - 伪索引 3.4 - C Closure 3.5 - 注册表 3.6 - C 中的错误处理
转载 2024-05-27 15:15:18
71阅读
1. 基础库我们在整个教程中使用了各种主题下的基本库。 下表提供了相关页面的链接,并列出了本Lua教程各部分所涵盖的功能。编号库/方法作用1错误处理包括错误处理函数,如断言, 错误,如Lua错误处理中所述。2内存管理包括与垃圾收集相关的自动内存管理功能, 如Lua垃圾收集中所述。3dofile ([filename])它打开文件并以块的形式执行文件的内容。4_G因此是保存全局环境的全局变量(即_G
转载 2024-05-22 10:35:00
236阅读
一、lua c api 是什么  C API是一组能使C/C++代码与Lua交互的函数。其中包括读写Lua全局变量、调用Lua函数、运行一段Lua代码,以及注册C函数以供Lua代码调用等。二、常用api  在Lua和C语言之间进行数据交换时,由于两种语言之间有着较大的差异,比如Lua是动态类型,C语言是静态类型,Lua是自动内存管理,而C语言则是手动内存管理。为了解决这些问题,Lua的设计者使用了
转载 2024-02-25 07:47:49
69阅读
文章目录1.c通过虚拟机和虚拟栈调用luatest-vm.ctest-vm.lua打印效果2.lua通过虚拟机和虚拟栈调用clua-tbl.ctest-tbl.lua3.lua的协程test-co.lua展示效果4.常用的lua api解释(C语言函数)1)lua_State *luaL_newstate (void);2)lua_State* L=luaL_newstate();3)lua_S
转载 2024-02-19 21:34:33
191阅读
前言 Lua作为游戏开发的吃饭语言,写了2、3年的lua,一行源码没看过,只能当个工具人,勉强维持生活。机缘巧合听了公司一个lua table源码解析的分享,感觉还蛮有意思,决定开始看一下lua源码,看懂这个我们开发使用的吃饭语言。【主要是闲了】 1.1 目录 下载到lua-5.2.1的源代码后,会发现源代码文件。全部放在src子目录下。这些文件根据实现功能的不同,可以分为四部分。
Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。在Lua中,一切都是变量.在这篇文章中,我想向大家介绍如何进行Lua程序设计及魔兽争霸中的Lua函数调用。 AD: 在这篇文章中,我想向大家介绍如何进行Lua程序设计及魔兽争霸中的Lua函数调用。我假设大家都学过至少一门编程语言,比如Basic或C,特别是C。因为Lua的最大用途是在宿主程序中作为脚本使用的。
当程序逻辑交给脚本跑了以后,C/C++ 层就只需要把必要的输入信息传入虚拟机就够了。当然,我们也需要一个高效的传递方法。  以向 lua 虚拟机传递鼠标坐标信息为例,我们容易想到的方法是,定义一个 C 函数 get_mouse_pos 。当 lua 脚本中需要取得鼠标坐标的时候,就可以调用这个函数。  但这并不是一个好方法,因为每次获取鼠标坐标,都需要在虚拟机和 native code 间做一次切
转载 2024-04-17 09:42:50
41阅读
笨木头花心贡献,啥?花心?不呢,是用心~正文: 1. Lua调用C++的函数 Lua调用C++的函数还是蛮方便的,首先,我们来创建一个c++函数先: public:   static int getNumber(int num);       int HelloLua::getNumber( int num ) { CCLOG("get
转载 2024-05-27 21:49:58
169阅读
1.1 从C程序调用LUA函数 LUA函数和普通变量一样也是First Class Variable类型,可以看作函数指针变量参与栈操作。因此调用过程分为如下几个步骤: 请求LUA函数(指针)入(GLOBAL)栈。将函数需要的参数入栈,入栈顺序按照参数被声明的顺序。告知LUA虚拟机入栈参数的个数、函数返回值的个数,并调用LUA函数。从栈定获得返回值,先返回的先入栈,然后将返回值显式出栈。
转载 2024-05-26 17:00:32
80阅读
Lua中,函数是对语句和表达式进行抽象的主要方法。既可以用来处理一些特殊的工作,也可以用来计算一些值。Lua 提供了许多的内建函数,你可以很方便的在程序中调用它们,如print()函数可以将传入的参数打印在控制台上。Lua 函数主要有两种用途:1.完成指定的任务,这种情况下函数作为调用语句使用;2.计算并返回值,这种情况下函数作为赋值语句的表达式使用。函数定义Lua 编程语言函数定义格式如下:o
1. 基础库 我们在整个教程中使用了各种主题下的基本库。 下表提供了相关页面的链接,并列出了本Lua教程各部分所涵盖的功能。 编号 库/方法 作用 1 错误处理 包括错误处理函数,如断言, 错误,如Lua错误处理中所述。 2 内存管理 包括与垃圾收集相关的自动内存管理功能, 如Lua垃圾收集中所述。
转载 2019-06-02 14:40:00
355阅读
2评论
今天又尝试新的语言,传说中的lua语言,以下是来自一个网友的博客!!!写的非常好!他写的是VS2015,但是我用的是VS2008不过同样适用哦!这段时间在使用cocos2d-x引擎的C++语言做手游,一直在群里听大牛讲lua脚本语言,以及如何使用lua脚本来替代c++写一些核心算法,简化开发周期等。作为一名合格的新手程序员,大牛的话就是圣旨,否则我们就不算是圈里的人。所以本人开始爬坑cocos2d
转载 2024-07-22 11:05:35
96阅读
基本函数库为Lua内置的函数库,不需要额外装载 assert (v [, message]) 功能:相当于C的断言, 参数: v:当表达式v为nil或false将触发错误, message:发生错误时返回的信息,默认为"assertion failed!" -----------------------------------------------------------------
转载 2024-03-28 13:15:35
53阅读
前言      在我开始这个系列的第一篇文章中,我就提到了Lua脚本用来实现宿主脚本的配置性和扩展性。上节说到的调用外部Lua脚本就对应了它的两大特性之一的配置性,那么另一大特性如何来体现呢?这就要说我们今天的话题了:Lua函数。uLua插件是用来解决unity3d热更新的方案,在我们需要对宿主程序做一些局部逻辑上的修改时,Lua函数就变得至关重要。那么如何在uLua
转载 2024-02-10 13:15:41
85阅读
目录一、Lua栈操作 - 引用类型在栈上处理方式二、Lua栈操作 - 入栈操作三、Lua栈操作 - 栈类型操作四、Lua栈操作 - 从栈上获取数据五、Lua栈操作 - 其它栈操作上一章节讲解了Lua的栈结构,理解了上一篇的栈接口在看本片应该比较好理解。Lua常用的栈操作API主要在lapi.c(lapi.c也提供给外部使用)文件中。一、Lua栈操作 - 引用类型在栈上处理方式Lua针对需要垃圾回收
转载 2024-04-08 22:01:02
89阅读
一、问题和C相比,Lua是一种限制比较松散的语言,这个在函数相关的处理中更加明显。函数可以有多个参数,函数返回值可以被赋值给变量列表(Lua manual中的varlist),函数可以return表达式列表(Lua manual中的explist),这些其实也不是很混乱,问题在于这些特性放在一起的时候就可能有些让人头大了。考虑下面的函数实现:tsecer@harry: cat lua-call.l
转载 2024-05-11 06:41:40
96阅读
Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性。对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数。对于那些可被Lua调用的C函数而言,其接口必须遵循Lua要求的形式,即typedef int (*lua_CFunction)(lua_State* L)。简单说明一下,该函数类型仅仅包含一个表示Lua环境的指针作
LUA调用C(一)-----CAPI一:为什么要使用Lua调用C函数lua调用C函数可以提高程序的运行效率。所以lua与C的相互调用在工程中相当实用,本文就来讲解lua与C相互调用的方法。二:Lua调C函数实现原理 Lua与C相互调用的首要问题是如何交换数据,lua API使用了一个抽象的栈与C语言交换数据,提供了压入元素,查询元素和弹出元素等功能的API操作栈,这里可以查看lua5.2中每个
转载 2024-02-16 17:53:24
314阅读
Lua可以与C很好地互通。主要是通过栈来通信。引入Lua提供的C APIlauxlib.h   lua.h   lua.hpp   luaconf.h   lualib.h   以下实现一个Lua的简单的解释器#include <stdio.h> #include <string.h> extern "C" { #
转载 2024-07-24 19:06:20
69阅读
  • 1
  • 2
  • 3
  • 4
  • 5