最近在进入Lua编程的状态,一度令我困惑的是,Lua提供的功能少的可怜,跟自备电池的python相比,可说是简陋了。连table的打印,都需要自己实现,也因此有了一打的第三方方案。后来我想明白了,以LuaC如此紧密的关系,只需要建立Lua的binding,那么丰富而性能强大的C库资源完全可以为Lua所用,这样就不愁功能缺失了。   关于C调用Lua,前段时间已经写过一篇短文了:《多语
转载 2024-05-02 16:56:19
62阅读
lua_call族函数解释, luac通信的基础: 栈, 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阅读
1. Lua解释器Lua解释器是什么? Lua解释器是一个使用Lua标准库实现的独立的解释器,是一个很小的Lua应用(总共不超过500行的代码)。解释器负责程序和使用者的接口:从使用者那里获取文件或者字符串,并传给Lua标准库,Lua标准库负责最终的代码运行。当Lua作为独立程序运行的时候,Lua和...
转载 2014-06-19 17:03:00
306阅读
2评论
Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。在Lua中,一切都是变量.在这篇文章中,我想向大家介绍如何进行Lua程序设计及魔兽争霸中的Lua函数调用。 AD: 在这篇文章中,我想向大家介绍如何进行Lua程序设计及魔兽争霸中的Lua函数调用。我假设大家都学过至少一门编程语言,比如Basic或C,特别是C。因为Lua的最大用途是在宿主程序中作为脚本使用的。
1.c调用lua的实现原理lua语言是c语言实现的,而且是非常轻量级的,非常适合内存受限的嵌入式产品c调用lua,需要在c程序中模拟出lua解释器环境,所以需要调用lua的函数,即生成c程序必定要链接lua库,lua解释器和C是通过一个虚拟栈来交换数据的栈的大小可以设置,通过查看lua的源码,可以知道这个栈的大小,在luaconf.h的LUAI_MAXSTACK,还可以通过lua_checksta
转载 2024-05-16 11:30:01
219阅读
Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性。对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数。对于那些可被Lua调用C函数而言,其接口必须遵循Lua要求的形式,即typedef int (*lua_CFunction)(lua_State* L)。简单说明一下,该函数类型仅仅包含一个表示Lua环境的指针作
LUA调用C(一)-----CAPI一:为什么要使用Lua调用C函数在lua调用C函数可以提高程序的运行效率。所以luaC的相互调用在工程中相当实用,本文就来讲解luaC相互调用的方法。二:LuaC函数实现原理 LuaC相互调用的首要问题是如何交换数据,lua API使用了一个抽象的栈与C语言交换数据,提供了压入元素,查询元素和弹出元素等功能的API操作栈,这里可以查看lua5.2中每个
转载 2024-02-16 17:53:24
314阅读
当程序逻辑交给脚本跑了以后,C/C++ 层就只需要把必要的输入信息传入虚拟机就够了。当然,我们也需要一个高效的传递方法。  以向 lua 虚拟机传递鼠标坐标信息为例,我们容易想到的方法是,定义一个 C 函数 get_mouse_pos 。当 lua 脚本中需要取得鼠标坐标的时候,就可以调用这个函数。  但这并不是一个好方法,因为每次获取鼠标坐标,都需要在虚拟机和 native code 间做一次切
转载 2024-04-17 09:42:50
41阅读
通过c++调用lua 脚本,    环境VC++6.0    lua  sdk 5.1.4   在调用前先认识几个函数。1.调用lua_open()将创建一个指向Lua解释器的指针。2. luaL_openlibs()函数加载Lua库。3.使用luaL_dofile()加载脚本并运行脚本。4. lua_close()来关闭Lua指向解释器的指针。 5.调用lua_getglobal()将add()
转载 2014-06-19 17:03:00
299阅读
2评论
基于上述文章,做一些补充:将C代码编译为DLL文件,让LUA代码调用://mytestlib.cpp#include #include #include #include #include //待注册的C函数,该函数的声明形式在上面的例子中已经给出。//需要说明的是,该函数必须以C的形式被导出,因此extern "C"是必须的。//函数代
笨木头花心贡献,啥?花心?不呢,是用心~正文: 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阅读
今天又尝试新的语言,传说中的lua语言,以下是来自一个网友的博客!!!写的非常好!他写的是VS2015,但是我用的是VS2008不过同样适用哦!这段时间在使用cocos2d-x引擎的C++语言做手游,一直在群里听大牛讲lua脚本语言,以及如何使用lua脚本来替代c++写一些核心算法,简化开发周期等。作为一名合格的新手程序员,大牛的话就是圣旨,否则我们就不算是圈里的人。所以本人开始爬坑cocos2d
转载 2024-07-22 11:05:35
96阅读
 Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性。对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数。对于那些可被Lua调用C函数而言,其接口必须遵循Lua要求的形式,即typedef int (*lua_CFunction)(lua_State* L)。简单说明一下,该函数类型仅仅包含一个表示Lua
转载 2024-04-06 20:57:40
22阅读
基于上述文章,做一些补充:将C代码编译为DLL文件,让LUA代码调用://mytestlib.cpp #include <stdio.h> #include <string.h> #include <lua.hpp> #include <lauxlib.h> #include <lualib.h> //待注册的C函数,该函数的声明形式
转载 2024-05-08 15:53:48
40阅读
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阅读
使用Lua编程,扩展外部接口时,不一定要编写lua专用的dll,使用系统的,或传统的动态链接库也可以,这样更具有通用性。基本用法:require("alien") --1.加载alien libc = alien.load("msvcrt.dll") -- 2.加载动态链接库 libc.puts:types("void", "string") -- 3.说明参数类型 libc.puts:t
转载 2024-02-23 21:37:46
79阅读
VC要编译LUA文件必须先配置VC编程环境。。我用的是VC6.0,lua 5.1.4版 首先将lua的"lua.h" ,"lualib.h", "lauxlib.h" 这三个放在vc程序include文件夹下 然后将lualua5.1.lib放在lib文件夹下就OK了 下面看看我写的一个小例子: Read More
转载 2016-04-17 21:17:00
323阅读
2评论
C语言是一种非常流行的编程语言,而Lua是一种基于C语言开发的脚本语言。相信大家都知道,Lua可以使用C语言来扩展其功能,进而
原创 2024-03-27 17:17:41
76阅读
  • 1
  • 2
  • 3
  • 4
  • 5