北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
12
返回列表 发新帖
楼主: ddid

我也发个求助贴——DLL编译,duno帮忙看看?

[复制链接]
发表于 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)
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-8-8 14:49:12 | 显示全部楼层
duno可不可以把你编译的dll文件(testlibc.dll)上传上来,还有,lua5.1.dll是Gammon提供下载的那个么?

多谢了!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
发表于 2009-8-8 14:51:44 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-8-8 14:58:38 | 显示全部楼层
原帖由 duno 于 2009-8-8 14:51 发表


我也囧……

我编译的testlibc.dll怎么就差着2K呢……

继续研究编译环境去……

谢了!
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2009-8-13 00:44:10 | 显示全部楼层
终于搞定这个问题了!

Cygwin编译dll看来不行,直接在Windows的MingW下编译就可以了……

连Lua都不用安装,直接使用GAMMON提供的lua5.1.dll和那几个头文件就可以了,哈哈哈哈……
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-28 01:13 PM , Processed in 0.010703 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表