从Lua内部获取Lua状态,以便将其传递回C。
2010-9-7 14:12:51
收藏:0
阅读:161
评论:2
我能够从 Lua 中加载由 C 源代码创建的 DLL。所以,我想要做的是从 Lua 将当前 Lua 状态传递到加载的 DLL 中。
基本上,我正在使用一个使用 Lua 的游戏引擎。该游戏引擎的场景编辑器创建 Lua 状态并调用 Lua 脚本,我确信它对所有调用的脚本都使用一个 Lua 状态。因此,我想象这个状态从这些 Lua 脚本本身中是已知的。我想要从这些 Lua 脚本中加载我自己的 DLL 并将这个状态传递给该 DLL,以便我的 C++ 代码可以使用该 lua 状态从同一个 lua 脚本中调用 lua 函数并处于相同的状态。这讲得通吗?
原文链接 https://stackoverflow.com/questions/3659426
点赞
stackoverflow用户68204
将你的 DLL 作为一个普通的 Lua 模块使用 C 实现。PiL 有一个描述,但它可以通过将单个导出函数命名为 DLL 的名称来实现,以便普通的 require
函数可以加载它。为了让库通过 require "mylib"
加载,你需要创建一个具有导出函数 luaopen_mylib()
的 mylib.dll,该函数创建一个包含你想要使用的所有方法的表,并将其返回。该函数以及它创建的所有其他方法,在每次调用时都会传递当前的 Lua 状态。
如果你的引擎不允许脚本中使用 require
,那么它也不可能允许使用 package.loadlib
,你可能根本无法加载你的 DLL。
2010-09-07 18:53:49
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
我猜我错过了一些显而易见的东西(这并不令我惊讶 - 我远非 Lua 专家)。
但是,如果你调用 package.loadlib ,你得到的函数句柄会被 Lua 本身用 state 调用,不是吗?请参见 CFunction 原型 。