如果我有一个 lua 脚本,比如
print'hi'
我如何使用 C++ 获得与其等效的 lua 字节码?我不确定我是否解释正确。感谢您的帮助!
最佳答案
您需要加载一个脚本,然后转储它的字节码。
相关的 C API 函数是 luaL_loadfile
或 luaL_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/