|
发表于 2009-8-8 14:35:55
|
显示全部楼层
下面的东西可正常调用
#include "stdio.h"
#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"
static int l_test(lua_State *L) {
double d = luaL_checknumber(L, 1); // 传参
lua_pushnumber(L, d * 0.1); // 返回值
return 1;
};
static const struct luaL_Reg testlib [] = {
{"test", l_test},
{NULL, NULL} // 表明结尾
};
__declspec(dllexport)
int luaopen_test(lua_State *L)
{
luaL_register(L, "testlib", testlib);
return 1;
};
编译
gcc -shared -o testlibc.dll test.c -L. -llua5.1
其中各头文件放在编译器默认的Include目录
dll文件:[mush_dir]\testlib\testlibc.dll
reg_func = package.loadlib ("testlib/testlibc.dll", "luaopen_test")
reg_func ()
n = testlib.test (3.14)
Note (n) |
|