(2)Library files,添加“D:\LUA\5.1\LIB”; (3)Executable files,添加“D:\LUA\5.1”; b、配置工程的链接属性,选择Project--->Setting--->Link,添加lua5.1.lib; 3、C程序与Lua脚本相互调用实例 a、C程序调用Lua脚本 (1)创建Lua数据脚本data.lua View Code (2)创建C程序main.c,读取test.lua中的数据,...
int sum; /* 通过名字得到Lua函数 */ lua_getglobal(L, func_name); /* 第一个参数 */ lua_pushnumber(L, x); /* 第二个参数 */ lua_pushnumber(L, y); /* 调用函数,告知有两个参数,一个返回值 */ lua_call(L, 2, 1); /* 得到结果 */ sum = (int)lua_tointeger(L, -1); lua_...
luaL_loadfile(栈L,lua脚本路径) 调用示例: 1 //testlua.c 2 #include "stdafx.h" 3 #include <stdio.h> 4 extern "C"{ 5 #include "lua.h" 6 #include "lualib.h" 7 #include "lauxlib.h" 8} 9 lua_State*L; 10 int add(lua_State*L); 11 12 int add(lua_State*L) 13{ 14 //...
一、C语言调用luajit 在使用C语言调用luajit之前,我们需要先了解一些必要的概念。首先,我们需要掌握一些基本的lua函数调用的方法。例如,我们可以使用luaL_newstate函数来创建一个新的lua_State结构体,这个结构体是在C语言和Lua之间进行通信的桥梁。同时,我们也需要掌握luaL_openlibs函数,它可以打开Lua的标准库,以便我们...
C 调用 Lua 方法 #include <stdio.h> #include <lua.h> #include <lauxlib.h> #include <lualib.h> int main() { // 1.创建 Lua 状态:首先需要创建一个 Lua 状态,这是 Lua 运行时环境的基础。 lua_State *L = luaL_newstate(); luaL_openlibs(L); // 打开标准库 // 2.加载 Lua 脚本:可...
Lua 是一个小巧的脚本语言。 其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。 单纯的学习lua并不能完全的发挥lua的作用,lua的一大优点就是能和c/c++无...
编译成功后,在src文件生成一个lua(lua解释器),luac(lua脚本编译器),以及静态库liblua.a,c调用lua的时候,现在是用静态库,现在把以下文件复制到项目目录下 头文件:lua.h lualib.h lauxlib.h luaconf.h 静态库文件:liblua.a 我的项目目录为:~/project/lua ...
lua_pcall (lua_State *L, int nargs, int nresults, int errfunc); 作用:以保护模式调用一个函数。 要调用一个函数请遵循以下协议:首先,要调用的函数应该被压入堆栈; 接着,把需要传递给这个函数的参数按正序压栈;这是指第一个参数首先压栈。最后调用lua_pcall; ...
// 创建一个新的Lua状态机 lua_State *L = luaL_newstate(); luaL_openlibs(L); // 打开Lua标准库 // 将C函数注册到Lua中 lua_register(L, "add", add); // 编写一个简单的Lua脚本,调用C函数add const char *script = "result = add(1, 2) print(result)"; ...
* 将值设置到table中,Lua脚本中可以用“.a”获取结构体x成员的值 * 第三个参数的值可以随便取,只要和Lua脚本中保持一致即可 */lua_setfield(L,-2,"a");/* 第二个操作数入栈 */lua_pushnumber(L,data.y);lua_setfield(L,-2,"b");/* 第三个操作数入栈,char*用lua_pushstring */lua_pushstri...