您的位置:首页 > 编程语言 > Lua

lua调用c函数

2015-10-15 08:26 706 查看
1.c函数封装成库,代码如下:

#include <stdio.h>
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>

//2 args 
static int add(lua_State* L)
{
double a = luaL_checknumber(L,1);
double b = luaL_checknumber(L,2);
lua_pushnumber(L,a+b);
return 1;  //1个返回值
}

static const luaL_reg mylibs[] =
{
{"add",add},
{NULL,NULL}
};
//1. 其函数名必须为luaopen_xxx,其中xxx表示library名称。Lua代码require "xxx"需要与之对应。
//2. 在luaL_register的调用中,其第一个字符串参数为模块名"xxx",第二个参数为待注册函数的数组。
int luaopen_myaddlib(lua_State* L) 
{   
const char* libName = "myaddlib";
    luaL_register(L,libName,mylibs);   
    return 1;
}



2.在 lua中调用,代码如下:

require "myaddlib"

print(myaddlib.add(1,2))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: