c++ - 如何将 lua 脚本转换为 lua 字节码?

标签 c++ lua

如果我有一个 lua 脚本,比如

print'hi'

我如何使用 C++ 获得与其等效的 lua 字节码?我不确定我是否解释正确。感谢您的帮助!

最佳答案

您需要加载一个脚本,然后转储它的字节码。

相关的 C API 函数是 luaL_loadfileluaL_loadstring 用于加载(它们使用原语 lua_load)和 lua_dump 用于倾倒。

使用这些辅助函数很容易加载。

由于需要提供编写器功能,因此转储需要更多工作。加载后调用 string.dump 可能更容易:

// load script, leave function on the stack
lua_getglobal(L,"string");
lua_getfield(L,"dump");
lua_pushvalue(L,-3);
lua_call(L,1,1);
// string containing bytecode left on the stack

关于c++ - 如何将 lua 脚本转换为 lua 字节码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43356666/

相关文章:

audio - 如何在lua中播放声音

c++ - FR_Not_Enabled 读取SD卡时Fat_fs错误?

c++ - 清除输入流

c++ - fread 的替代用法

input - 从 stdin 读取数据而不阻塞?

error-handling - 是否有 Lua 警告而不是 Lua 错误?

创建引用表元素

c++ - 在 std::pair 中存储不可复制(但可 move )的对象

c++ - 正确的 Xcode 设置

lua - 为什么这个 Lua 模式不起作用?