交互专题提供交互的最新资讯内容,帮你更好的了解交互。
1、错误(err_return)的宏定义 #define err_return(num,fmt,args)  /     do     {         printf("[%s:%d]"fmt"/n",__FILE__,__LINE__,##args);return(num);     } while(0) -1  是return的返回值,表示有错误; fmt 是一个字符串,用于打印错误信息;
Lua和C之间的交互 (一)            Lua 调C函数   1.        什么样类型的函数可以被Lua调用   typedef int (*lua_CFunction) (lua_State *L);   2.        符合类型的函数怎样处理后才可以被Lua调用 使用lua_register或者 lua_pushfunction和lua_setglobal()把要调用的函
lua 与C/C++ 交互 lua 与 C/C++ 交互 有两种方式:1.源码方式 2. 动态链接库方式 首先要做的事,是从lua 官网下载 lua源码,网址 : http://www.lua.org/ftp/点击打开链接 1.源码方式:  源码方式的 好处 就是 可以调试 和 跟踪 lua代码, 1.1 新建工程,并在工程源码目录中新建 lua 文件夹 1.2解压缩lua源码文件,进入到 src
 c调用lua 介绍一本lua的书 <lua程序设计 第二版>,书的作者就是lua 的作者.可想 书的 含金量. 如果 博友 看不懂 底下的 知识点,请研读 上面的 书. 切记,欲速则不达. c 调用 lua  有几个方面的 知识点: 1. 获取 和 设置 lua 全局变量 2.调用 lua 函数 3. lua table 操作 1.获取 和 设置 lua 全局变量,通过  lua_getglob
c调用lua数组 上节说的 通过 lua_getfield获取 lua Table,只能 获取 字符型 的 table的值 这一节,补充 一下 怎么 获取 数组 型 table test.lua  增加了 一个 数组型 table  (在 上节的 基础上) array = {111,222,333} cpp  (在 上节 cpp的基础上 添加) //获取array lua_getglobal(l,
将lua作为一种配置文件 假设C程序里有一个窗口,希望用户能指定窗口的 颜色值. 可能 有人 会觉得, 我写一个 txt文件 也可以 实现,  不过 将 lua 做为一种配置 文件的 好处 有 : lua可以处理所有的语法细节 和语法错误. 其次是  实现更复杂的逻辑 这个小程序 是从 文件里 读取 颜色值. 颜色值 可以 设置 成 r,g,b的 table 或者 "red" 这样的 字符串. 下
lua调用c/c++ lua代码: a = 10 b = 20 c = CAdd(a,b) print("全局函数 CAdd:",c) require "mylib" c = mylib.CAdd(a,b) print("库函数 mylib.CAdd:",c) c++代码: // luaCApiDll.cpp : 定义控制台应用程序的入口点。 // #include "stda
lua调用 c++ 的 两个函数: 一个是 对lua 数组 调用函数替换 数组元素,一个 分割字符串 test.lua --数组操作 a = {1,2,3,4,5,6} swapArray(a,function(t) return t + 1 end) local function printArray(array) for k,v in ipairs(array) do print
Lua生来就是为了和C交互的,因此使用C扩展Lua或者将Lua嵌入到C当中都是非常流行的做法。要想理解C和Lua的交互方式,首先要回顾一下C语言是如何处理函数参数的。 C函数和参数 大家知道C语言是用汇编实现的,在汇编语言中可没有函数的概念,与函数对应的是叫做子过程的东西,子过程就是一段指令,一个子过程与它调用的子过程之间通过栈来进行参数的传递交互。在一个子过程在调用别的子过程之前,会按照约定的格
C调用Lua函数 不要怀疑,对Lua函数的调用也是通过栈来进行的。请看如下代码: Lua代码: function lua_func (x, y) print("Parameters are: ", x, y) return (x^2 * math.sin(y))/(1-x) end C代码: double c_func(lua_State *L, double x, double y){ doub
自定义数据类型: 我们通过使用C语言实现一个Lua数组来演示Lua实现自定义用户数据。数组的结构如下所示: typedef struct NumArray{ int size; //表示数组的大小 double values[]; //此处的values仅代表一个double*类型的指针,values指向NumArray结构后部紧跟的数据的地址 } NumArray; 我们实现四个函数new,ge
 C和Lua交互的部分称为C API。C API是一个C代码与Lua进行交互的函数集。他由以下部分组成:读写Lua全局变量的函数、调用Lua函数的函数、运行Lua代码片断的函数、注册C函数然后可以在Lua中被调用的函数,等等。   API中有些函数为了方便以宏的方式实现。   当在Lua和C之间交换数据时我们面临着两个问题:动态与静态类型系统的不匹配和自动与手动内存管理的不一致。解决办法是在C和L
 lua_State             Lua状态机或叫Lua虚拟机,支持多线程,可创建多个状态机     typedef int (*lua_Cfunction)(lua_State* L)             Lua所调用的C函数的函数原型,在C程序中需要将这种函数类型的             函数注册到Lua状态机中,此后Lua才能调用到C的函数             如果有函
Lua与C交互的栈是一个重要的概念。文章首先解释了为什么要引入Lua栈,然后对访问栈常用的API进行了总结,并使用这些API的注意事项,最后从Lua源代码来看栈的实现原理。 Lua栈概述       我们知道Lua是一种嵌入式语言,所有的Lua程序最后都需要通过Lua解释器(即Lua虚拟机)把其解析成字节码的形式才能执行。 一方面,我们可以在一个应用程序(拥有主动权)中嵌入Lua解释器,此时使用L
转自:Lua与C/C++的交互1:C/C++与Lua最简单的互动 我想在VS中,实现C/C++与lua的交互。原理很简单,我们记住两条即可,1.lua里面的API都是用C写的。2.lua跟C/C++的交互是通过一个虚拟stack来进行数据的沟通的。在VS工程中,我们需要加入C API的头文件lua.h,  luaconfig.h , lualib.h,  luaxlib.h 。这几个头文件都是lu
1.前言 Lua语言是一种嵌入式语言,它本身的威力有限;当Lua遇见了C,那它就展示了它的强大威力。C和Lua是可以相互调用的。第一种情况是,C语言拥有控制权,Lua是一个库,这种形式中的C代码称为“应用程序代码”;第二种情况是,Lua拥有控制权,C语言是一个库,这个时候C代码就是“库代码”。“应用程序代码”和“库代码”都使用同样的API来与Lua通信,这些API就称为C API。 C API是一
转自:http://www.cnblogs.com/SweetDream/archive/2008/10/14/1310490.html   Lua 与  C 交互(1) lua_newtable void lua_newtable (lua_State *L); 创建一个空 table ,并将之压入堆栈。 它等价于 lua_createtable(L, 0, 0) 。 lua_gettop in
1 CAPI简介 Lua与C可以有两种方式进行交互,一种是把LUA的功能作为库进行使用。另一种是在LUA中调用C库的功能,二者都可以通过CPAI的方式在LUA与C之间建立起桥梁。主要的数据结构是一个虚拟栈,大部分API均会操作栈上的值,进行数据交换。栈由Lua管理,垃圾收集器能对无用数据进行回收。 CAPI的能力包括读写LUA全局变量、调用LUA函数、运行LUA代码,以及注册C函数以供LUA代码调
一不小心又标题党了?不好意思哈~ 翻看了以前的博客,发下废话太多了自己都看不下去啊,恩,以后尽量写得简洁一些。 本文不涉及lua语法学习,如果有需要,请移步:http://book.luaer.cn/ 一.lua堆栈 要理解lua和c++交互,首先要理解lua堆栈。 简单来说,Lua和C/c++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。 在lua中,lua堆栈就是一个struc
1、Lua通过ANSI C 进行编写,Lua与C交互要遵循一定的协议规则。在Lua 5.1 Reference Manual中明确规定如何通过C Code调用Lua 编写的函数。      C  code可以调用Lua Code编写的任何函数.本文主要以全局函数来做演示。 2、首先把C语言调用Lua 函数的协议规则说明。Lua 5.1 Reference Manual 中关于void lua_ca