我应该如何制作一个可以从Lua中调用的C函数?

我想知道如何制作一个 C 函数并告诉 Lua 它的存在,然后从 Lua 中调用它。我已经在我的 Mac OSX 10.4 计算机上安装了所有 Lua 库。

原文链接 https://stackoverflow.com/questions/4190697

点赞
stackoverflow用户33252
stackoverflow用户33252

你可以使用luaL_register注册函数。

可以在PiL中查看一些例子和解释。

2010-11-16 02:39:11
stackoverflow用户379573
stackoverflow用户379573

以下是一个优秀的 Lua-C 集成示例 herehere

如果你只需要将一个函数导出到全局命名空间中,那么:

  1. 声明这个函数 (我们称之为 f),它的签名是 lua_CFunction
  2. 调用 lua_register(L, "myfunc", f),其中 L 是 Lua 状态,函数 = f
  3. 运行 lua 代码,然后 f 将作为 myfunc 在全局命名空间中可用。

如果你要使用指定的解释器,则可能想创建一个库。这个人Lua Programming Gems 上写了一篇文章,解释了如何创建一个库。这些源代码也可以在线获取。

2010-11-16 02:56:34
stackoverflow用户126042
stackoverflow用户126042

我的回答包含了一个很好的短例子,介绍如何使用C和Lua一起制作一个非常简单的游戏。在我有偏见的观点中,这是一个很好的起点。

2010-11-16 17:28:25