lua入门之一:c/c++ 调用lua
来源:互联网 发布:java 泛型 通配符 编辑:程序博客网 时间:2024/06/04 19:07
lua和c / c++的数据交互通过栈进行, 操作数据时,首先将数据拷贝到"栈"上,然后获取数据,栈中的每个数据通过索引值进行定位,索引值为正时表示相对于栈底的偏移索引,索引值为负时表示相对于栈顶的偏移索引,索引值以1或 - 1为起始值,因此栈顶索引值永远为 - 1, 栈底索引值永远为1 。 "栈"相当于数据在lua和c / c++之间的中转地。每种数据都有相应的存取接口 。
--region *.lua--Date--此文件由[BabeLua]插件自动生成print("lua script func.lua have been load ")function showinfo()print("welcome to lua world ")endfunction showstr(str)print("The string you input is " .. str)endfunction add(x,y)return x+y;end--endregion
#include <stdio.h>//lua头文件#ifdef __cplusplusextern "C" {#include "lua.h" #include <lauxlib.h> #include <lualib.h> } #else#include <lua.h>#include <lualib.h>#include <lauxlib.h>#endifint main(int argc,char ** argv){lua_State * L=NULL;/* 初始化 Lua */ L = lua_open(); /* 载入Lua基本库 */ luaL_openlibs(L); /* 运行脚本 */ luaL_dofile(L, "./script/func.lua"); //获取lua中的showinfo函数lua_getglobal(L,"showinfo");//cpp 调用无参数的lua函数,无返回值lua_pcall(L,0,0,0);//主动清理堆栈,也可以不调用const char * pstr="世界如此美好";lua_getglobal(L,"showstr");lua_pushstring(L,pstr);//cpp 调用一个参数的的lua函数,无返回值lua_pcall(L,1,0,0);lua_getglobal(L,"add");//参数从左到右压栈lua_pushinteger(L,2);lua_pushinteger(L,3);lua_pcall(L,2,1,0);printf("lua add function return val is %d \n",lua_tointeger(L,-1));/* 清除Lua */ lua_close(L); return 1;}
输出结果为:
2 0
- lua入门之一:c/c++ 调用lua
- [Lua]C/C++调用Lua
- [lua]C调用lua函数
- lua与c互调--c调用lua
- lua与c互调--lua调用c
- C/C++ 调用 Lua
- c调用lua脚本
- Lua调用C函数
- C调用lua
- lua 调用c函数
- lua c/c++ 调用
- Lua调用C函数
- lua调用c函数
- Lua调用C函数
- c调用lua
- c 调用 lua
- c、c++调用lua
- c/c++ 调用lua
- 一般公司不太可能让应届生在面试的时候手写那么多的代码
- DecimalFormat使用
- javascript基础拾遗——词法作用域
- Python语言的Human-Readable Print(Pretty Print)
- word2007快捷使用方式
- lua入门之一:c/c++ 调用lua
- 一个通用的php正则表达式匹配或检测或提取特定字符类
- 当django出现500时,邮件报告敏感信息过滤功能-- 1.4以上版本支持。
- charactericts of transe line and transe line transform
- <iOS>网络编程(三)SOAP, WSDL, Web Service
- javascript 使用方式
- linux下rm命令使用详解---linux删除文件或目录命令
- 关于锚点跳转及jQuery下相关操作与插件
- 京东在美上市背后究竟暗藏啥玄机?