【Lua】Lua调用C动态库

lua 好归好,但有很多对效率要求较高的服务,还得让C来完成。本篇学习下Lua如何调用C。


最重要的部分:

定义一个 luaopen_* 函数,并调用 luaL_openlib 函数

int luaopen_mylib(lua_State *L)
{
        luaL_Reg l[] = {
            {"test1",test1},	// key-val,相当于{"(lua调用时使用的函数名)",C定义函数名(函数指针)}
            {"test2",test2},
            {NULL,NULL}		// 必不可少
        };
        luaL_newlib(L,l);
        return 1;
}

这个函数相当于作为此动态库的main函数。需要注意:

1、luaopen_是此函数的前缀,不可修改。后面的内容是我们在lua中使用 require 引用此库时的字符串名称(假如名称中带有下划线,在使用require需要将下划线替换为点,例如:“mylib_test”->“mylib.test”)。
2、在Lua5.0中调用的是luaL_openlib,但是在Lua5.3中,则是使用luaL_newlib


下面是一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值