第二步:根据源码生成lua静态库、lua编译器、lua解释器,实际这些在官网应该都有现成的,但是最好自己实践一下 lua静态库:在VS下新建工程,选择生成静态库、不需要预编译头,包含src的文件,除了lua.c、luac.c lua编译器:在VS下新建工程,选择生成控制台工程,包含src的文件,除了lua.c lua解释器:在VS下新建工程,选择生...
本码农最近写的与Lua相关系列文章,欢迎大家阅读: 码农帮:编译android的C版本Lua库 码农帮:编译iOS的C版本Lua库 码农帮:Lua与C在Android上的互调 码农帮:Lua与C在iOS上的互调 本人是一位移动端全栈工程师,前…
ar命令可以用来创建、修改库,也可以从库中提出单个模块 -c 选项表示 创建一个库。不管库是否存在,都将创建 -r 选项表示 将模块插入库,如果库中有对应的模块,那么进行更新 如果把多个.o文件插入库.a里,只需要在后面用空格分开写出来 格式 ar -cr 静态库libname.a name1.o name2.o 静态库的命名有规则,格式...
static const rotable_Reg exa[] = //exa[]就是你的自定义库名字 { {"jiaFa", l_jiaFa, 0}, //第一个是lua要调用的函数名字,第二个是对应的c函数,第三个是lua_Integer值,一般写0 {NULL, NULL, 0}}; //结尾要有这一行,代表没有其他的函数了 LUAMOD_API int luaopen_exa(lua_State *L) //...
Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性。对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数。对于那些可被Lua调用的C函数而言,其接口必须遵循Lua要求的形式,即typedef int (*lua_CFunction)(lua_State* L)。简单说明一下,...
我们知道,lua通过lua_State堆栈可以很方便的与C语言进行交互 http://blog.csdn.net/sm9sun/article/details/68946343 也可以调用专门为lua调用而封装的C库。 具体步骤: 1.原C文件中引入lua相关头文件 #include "lua.h"#include "lualib.h"#include "lauxlib.h" ...
C库注册函数 函数介绍 int luaL_newmetatable (lua_State *L, const char *tname); 和lua_newtable类似, 也是用来生成一个指定名字的表, 但是只有前者能够作为userdata的metatable void lua_setfield (lua_State *L, int index, const char *k); ...
lua结合c/c++ 示例 lua调用c动态库 示例 lua调用c++动态库 示例 lua部分 #!/bin/lua mystr="I'm lua" myTable={name="xiaoming",id=12345} function print_h
lua_tinker::def(L, "std_function_int_bind88", func_c); lua local c_func = get_cpp_function(); return c_func(1) == 2; 把lua函数当成function对象传递给c++ local upval = 0; local localtest = function(intval) upval = upval+ intval; ...
这里给出lua_CFunction的类型: typedef int (*lua_CFunction) (lua_State *L); 可以看到它是一个函数指针,可以用于参数是lua_State*而返回值是int的函数。 显然,我们压入栈的C函数的参数和返回值类型是严格受限的。 void lua_setglobal (lua_State *L, const char *name); ...