我如何创建一个可以从 Lua 调用的 C 函数?

发布于 2024-10-03 01:13:48 字数 1437 浏览 5 评论 0 原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

秋意浓 2024-10-10 01:13:48

这里此处

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

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

如果您要使用库存解释器,那么您可能需要创建一个库。 这个人Lua 编程宝石 解释了如何做到这一点。来源可在线获取。

There's an excellent example of Lua-C integration here and here.

If you just need to export a function into the global namespace, then:

  1. Declare the function (let's call it f) with signature lua_CFunction.
  2. Call lua_register(L, "myfunc", f), with L being the Lua state, and function = f.
  3. Run the lua code. Then f will be available in the global namespace as myfunc.

If you're going to use the stock interpreter then you might want to make a library. This guy wrote an article for Lua Programming Gems that explains how to do it. The sources are available online.

困倦 2024-10-10 01:13:48

您可以使用 luaL_register 注册函数。

请参阅PiL

You can register functions using luaL_register

Look at some examples and explanation in PiL

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文