如何将 lua 脚本转换为 lua 字节码

How to get a lua script into lua bytecode?

本文关键字:lua 字节 转换 脚本      更新时间:2023-10-16

如果我有一个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