2017-04-11 124 views
1

如果我有一個Lua腳本,說如何將lua腳本轉換爲lua字節碼?

print'hi' 

我該如何獲得LUA字節相當於它用C++?我不確定是否我正在解釋這個權利。感謝你的幫助!

+0

是否要生成獨立的可執行文件?你想從lua調用C++函數嗎?你應該編輯這個問題,直到你確信你*解釋正確。 – nwp

+0

相關的C API函數是'luaL_loadfile'或'luaL_loadstring'和'lua_dump'。 – lhf

+0

謝謝!正是我需要的。 – Settop

回答

1

您需要加載腳本,然後轉儲其字節碼。

相關C API函數爲luaL_loadfileluaL_loadstring用於加載(它們使用原始文件lua_load)和lua_dump進行轉儲。

加載操作很容易完成這些輔助功能。

由於需要提供編寫器功能,轉儲是BT的更多工作。加載後可能更容易致電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