wordpress网站微信登录,代做企业网站,建设银行网站网页丢失,同城分类信息系统Lua调用C函数有两种方式
程序主体在C中运行#xff0c;C函数注册到Lua中。C调用Lua#xff0c;Lua调用C注册的函数#xff0c;C或者Lua得到函数的执行结果。程序主体在Lua中运行#xff0c;C函数作为库函数供Lua使用。
C的代码如下
如何在Lua脚本中调用这个C语言函数(ad…Lua调用C函数有两种方式
程序主体在C中运行C函数注册到Lua中。C调用LuaLua调用C注册的函数C或者Lua得到函数的执行结果。程序主体在Lua中运行C函数作为库函数供Lua使用。
C的代码如下
如何在Lua脚本中调用这个C语言函数(add_function)
#include QCoreApplication
#include stdio.h
extern C{
#include lua.h
#include lauxlib.h
#include lualib.h
}/* C语言函数 */
int add_function(lua_State* L)
{/* 从Lua栈中获取参数 */double x luaL_checknumber(L, 1);double y luaL_checknumber(L, 2);/* 执行函数操作 */double z x y;/* 将结果压入Lua栈中 */lua_pushnumber(L, z);/* 返回结果数量 */return 1;
}lua_State *L;
int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);printf(started\r\n);L luaL_newstate();//新建lua解释器luaL_openlibs(L);//载入lua基础库#if 1/* 将add_function函数绑定到Lua中的call_add_function函数这样就可以在Lua脚本中调用这个C语言函数了 */lua_register(L, call_add_function, add_function);/* 加载Lua脚本文件 */luaL_dofile(L, ./test.lua);//执行lua中的callcfun函数lua_getglobal(L, callcfun);lua_call(L, 0, 0);
#endif/*cleanup Lua*/lua_close(L);system(pause);return a.exec();
}
lua调用C函数
新建 text.lua代码如下
-- Lua脚本(在Lua脚本中可以使用以下代码来调用C语言函数)
function callcfun()local z call_add_function(1.5, 2.3)print(z) -- 输出3.8
end