最近在进入Lua编程的状态,一度令我困惑的是,Lua提供的功能少的可怜,跟自备电池的python相比,可说是简陋了。连table的打印,都需要自己实现,也因此有了一打的第三方方案。后来我想明白了,以Lua和C如此紧密的关系,只需要建立Lua的binding,那么丰富而性能强大的C库资源完全可以为Lua所用,这样就不愁功能缺失了。   关于C调用Lua,前段时间已经写过一篇短文了:《多语            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-02 16:56:19
                            
                                62阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            lua_call族函数解释, lua和c通信的基础: 栈, TValue
    这些东西是平时遇到的, 觉得有一定的价值, 所以记录下来, 以后遇到类似的问题可以查阅, 同时分享出来也能方便需要的人, 转载请注明来自RingOfTheC[ring.of.the.c@gmail.com] 打算记录一些lua_api, 可能会觉得lua文档中已经说的很清            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-16 11:51:43
                            
                                293阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1. 基础库我们在整个教程中使用了各种主题下的基本库。 下表提供了相关页面的链接,并列出了本Lua教程各部分所涵盖的功能。编号库/方法作用1错误处理包括错误处理函数,如断言, 错误,如Lua错误处理中所述。2内存管理包括与垃圾收集相关的自动内存管理功能, 如Lua垃圾收集中所述。3dofile ([filename])它打开文件并以块的形式执行文件的内容。4_G因此是保存全局环境的全局变量(即_G            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-22 10:35:00
                            
                                236阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            3.1 - 堆栈 
 
 
 
 
  3.2 - 堆栈尺寸 
 
 
 
 
  
    
 
 
  
    
 
 
 
  3.3 - 伪索引 
 
 
 
 
  
    
 
 
  3.4 - C Closure 
 
 
 
  3.5 - 注册表 
 
 
 
  3.6 - C 中的错误处理            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-27 15:15:18
                            
                                71阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            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的最大用途是在宿主程序中作为脚本使用的。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-21 22:41:57
                            
                                82阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性。对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数。对于那些可被Lua调用的C函数而言,其接口必须遵循Lua要求的形式,即typedef int (*lua_CFunction)(lua_State* L)。简单说明一下,该函数类型仅仅包含一个表示Lua环境的指针作            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-15 11:05:54
                            
                                62阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            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(一)-----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阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            当程序逻辑交给脚本跑了以后,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"是必须的。//函数代            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-27 21:49:55
                            
                                80阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            笨木头花心贡献,啥?花心?不呢,是用心~正文: 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阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            基于上述文章,做一些补充:将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函数来实现,之后再通过Lua调用指定的C函数。对于那些可被Lua调用的C函数而言,其接口必须遵循Lua要求的形式,即typedef int (*lua_CFunction)(lua_State* L)。简单说明一下,该函数类型仅仅包含一个表示Lua            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-06 20:57:40
                            
                                22阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            使用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阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            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阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            说明:openresty可以理解为一个服务器它将nginx的核心包含了过来,并结合lua脚本语言实现一些对性能要求高的功能,该篇文章介绍了使用openresty1.purview.lua  --调用json公共组件
cjson = require("cjson")
fun = require("ttq.fun") -- 引用公用方法文件
conf = require("ttq.ini") --引用            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-06 08:00:17
                            
                                62阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
              作者:周玉杰 自从ulua在官网上出来后,lua 就被u3d开发人员喜爱。国内有几个高手把lua拿过来 接着进行了封装。很多都是新手转过来。lua语法一看遍知,但是大多数人还是不明白两个语言之间的互相调用是怎么一回事,这也是难点和重点。 
 所以今天想跟大家分享一下这方面的知识,让大家少走弯路吧。  先看看u3d 里面c# 调用lua 是c# 先调用了lua的dll它是一个C库这个C