#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文件:\testlib\testlibc.dll
reg_func = package.loadlib ("testlib/testlibc.dll", "luaopen_test")
reg_func ()
n = testlib.test (3.14)
Note (n)
duno可不可以把你编译的dll文件(testlibc.dll)上传上来,还有,lua5.1.dll是Gammon提供下载的那个么?
多谢了!hzn 囧 原帖由 duno 于 2009-8-8 14:51 发表 http://pkuxkx.com/forum/images/common/back.gif
囧
我也囧……
我编译的testlibc.dll怎么就差着2K呢……
继续研究编译环境去……
谢了! 终于搞定这个问题了!
Cygwin编译dll看来不行,直接在Windows的MingW下编译就可以了……
连Lua都不用安装,直接使用GAMMON提供的lua5.1.dll和那几个头文件就可以了,哈哈哈哈……
页:
1
[2]