Lua 下通过虚拟栈传递参数,只要注册相应接口便可调用C函数。
#include "lua.h" // v5.1.5 #include "lualib.h" #include "lauxlib.h" // 原生函数 int ShowVal(const char *szReq, int &score); // 包装函数 int GetScore(lua_State *env) { int count = lua_gettop(env); if (count != 1) { lua_pushstring(env, "Param size not equal 3"); lua_error(env); return -1; } // 参数出栈 const char *szReq = luaL_checkstring(env, 1); // 原生接口 int code = 0, score = 0; code = ShowVal(szReq, &score); // 结果入栈 lua_pushnumber(env, code); lua_pushnumber(env, score); return 2; // 入栈参数个数 } static luaL_Reg luaLibs[] = { {"luaGetScore", GetScore}, {NULL, NULL} }; // lua接口注册 int luaopen_cloudadapi(lua_State *env) { const char *const LIBRARY_NAME = "cloudadapi"; luaL_register(env, LIBRARY_NAME, luaLibs); return 1; }
编译动态库 cloudadapi.so
测试:
require "cloudadapi" code, score = cloudadapi.luaGetScore('test') print(string.format("code:%d score:%d", code, score))
相关推荐
lua和c语言之间相互调用实例
lua调用c函数库的demo 其中实现了对一个 数组的管理。 注意lua参数与c函数的对应, 如:b=lua_dllb.getarray(a,1) static int getarray(lua_State* L) { NumArray * a=(NumArray*)lua_touserdata(L,1); //对应lua...
在Linux底下,从Lua中调用C函数的一个简单例子。
该文档主要详细介绍了,如何利用cocos2dx自带的绑定工具,注册自己的自定义c++ 函数,从而可以在lua项目里面调用c++自定类,实现lua项目的扩展
现在最新版本lua,lua-5.2.3。
lua实现webservice调用 通过gsoap 实现 C/C++ 调用web service
主要介绍了Lua教程(二十):Lua调用C函数,本文讲解了C函数作为应用程序的一部分、C函数库成为Lua的模块等内容,需要的朋友可以参考下
lua与oc的交互demo,封装了一层luaBridge,开源lua库,lua调用oc的过程
在Linux底下,从C语言调用Lua代码的一个简单例子。
OpenWrt UCI详解,包含uci命令的基本操作,c语言、lua语言调用uci接口实例
delphi7与lua相互调用的例子,基本和法和C调用lua差不多
这是linux下lua5.3调用C++动态库的一个调用实例,非常简洁实用.展现了lua调用c接口,c再调用C++类,实现自己需要的功能
下面对lua和c/c++的交互调用做一个实例分析: lua提供了API用于在c/c++中构造lua的运行环境,相关接口如下: //创建lua运行上下文 lua_State* luaL_newstate(void) ; //加载lua脚本文件 int luaL_loadfile(lua_...
主要介绍了Lua中调用C语言函数实例,本文先讲解了相关知识,然后给出了调用实例,需要的朋友可以参考下
Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性。对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数。对于那些可被Lua调用的C函数...
这是一组全局函数,当您在您的应用程序中实现一个能被LUA调用的函数时候,需要用到这些函数。主要是数据交换相关。包含 LUA取参数数目、LUA取参数类型、LUA取参数值、LUA加返回值、LUA扩展栈。后续版本可能会根据...
直接以JNI方式调用Lua解析引擎的接口十分麻烦,开源项目LuaJava(https://github.com/mkottman/AndroLua )对这些JNI接口进行了很好的封装,它是一个包含了LuaJava的Android平台的Lua解析器,它提供一系列映射到Lua ...
在windows下lua调用c函数的例子
lua入门之三:lua调用c/c++库(动态链接方式)的示例代码,为vs2012工程,vs需安装babelua插件
简要实现了C/C++中调用Lua脚本的技术。 通过用Lua脚本输出一个便签,来研究C/C++与Lua的交互技术。