lua - 在 Lua 中,访问通过用户数据表寻址的 C 函数的评估值
问题描述
我有一段从 C 程序调用的 lua 代码,它传递给它一个表。
该表包含一个表,该表具有 LUA 报告的“函数”类型的字段。
我想调用该函数并获取其返回值,但以下只会导致崩溃(????堆栈损坏????):
function myFunc (tableIn)
local interface = tableIn["interface"] -- type(interface) is table
local targetFunc = interface["targetFunc"] -- type(targetFunc) is function
local value = targetFunc()
...
end
因此,我假设我需要将一个或多个参数传递给 targetFunc(...) 但我不知道 targetFunc() 期望什么,并且我无权访问 targetFunc 的文档或代码 - 我' m 也猜测是用 C 编写的。
我已经看到了线程lua - 从函数外部获取函数的参数名称列表并按照建议运行代码 - 但这似乎只是返回“*临时”。
问题:是否有一些从 LUA 调用 C 例程的“标准”方式 - 或者是否有任何其他编程方式(甚至一次性)来找出 targetFunc(...) 需要多少和什么类型的参数。
即使是“不 - 您需要查看 targetFunc(...) 的代码/文档”的回答也会有所帮助!
提前致谢...
解决方案
推荐阅读
- reactjs - 如何添加道具验证以摆脱掉毛错误?
- svg - SVG viewBox:平移和缩放的准确顺序
- javascript - 将元素属性放入输入值
- ca - 如何配置 OpenXPKI 以使用 EST 协议
- c++ - Visual Studio 链接器不处理 CUDA *.obj 文件
- c# - mvc url 重定向 - “/”应用程序中的服务器错误
- unity3d - 如何在 Unity 中获取顶点邻居
- c++ - regex_token_iterator 试图引用已删除的函数
- node.js - 在 Microsoft 团队中安装机器人,机器人名称是 Azure 主机,而不是授权中指定的机器人名称
- javascript - 如何在 html thymeleaf 中使用变量作为参数