2013-03-24 121 views
0

使用luac5.1.exe有無論如何傳遞一個字符串來創建一個二進制文件或沒有人知道任何模塊,可以創建一個語法檢查的二進制文件, m想要做的是創建一個設置文件,可以通過require再次加載。Lua luac.exe從字符串創建二進制文件

回答

1

也許試試這個:

function compile(source,file) 
    io.open(file,"wb") 
    :write(string.dump(assert(loadstring(source,"")))) 
    :close() 
end 
+0

爲什麼完整的源文本也被納入到輸出文件? – 2013-03-24 17:42:19

+0

@EgorSkriptunoff,我編輯了代碼以刪除完整源代碼。 – lhf 2013-03-24 17:58:28

+0

謝謝你,但我得到一個錯誤運行它,測試字符串是「測試測試」錯誤是[字符串「」]:1:「=」預計接近「」和林不知道這意味着什麼 – 2013-03-24 18:18:40

1

請注意require加載lua源文件或動態庫。如果你真的需要二進制數據,Yu可能會更好用自定義加載器。

這樣做的兩個庫是Roberto的struct和lhf的lpack

如果你真的想require,那麼你可以在你的二進制數據轉換爲字符串,但由於想必是userdata,你需要一個C函數的userdata轉化爲Lua的訪問類型,如stringnumber