我聽說過使用LuaJIT將Lua代碼編譯爲字節碼,然後將其轉換爲靜態庫。編譯lua腳本到dll中?
理想情況下,我希望能夠將Lua代碼編譯到動態庫中,這樣我就不必重建主要的可執行文件。
你能把Lua編譯成一個dll嗎?如果是的話,你怎麼連接到C++代碼,因爲沒有頭文件? 最後,你將如何從程序內部運行Lua腳本?
我聽說過使用LuaJIT將Lua代碼編譯爲字節碼,然後將其轉換爲靜態庫。編譯lua腳本到dll中?
理想情況下,我希望能夠將Lua代碼編譯到動態庫中,這樣我就不必重建主要的可執行文件。
你能把Lua編譯成一個dll嗎?如果是的話,你怎麼連接到C++代碼,因爲沒有頭文件? 最後,你將如何從程序內部運行Lua腳本?
,我相信你會做什麼是LUA interperter DLL(http://www.lua.org/pil/24.html)鏈接到您的程序,然後包括腳本作爲一種資源,如頭到你的C/C++程序,並使用lua.dll函數來執行它。您也可以使用該方法從C中調用lua函數(這顯示了幾個完整的片段示例,頭文件http://www.troubleshooters.com/codecorn/lua/lua_c_calls_lua.htm)。
謝謝,但我仍然需要重新編譯的exe文件,我試圖實現的觀點 – Constan7ine 2012-07-31 06:08:36
@DavidC沒有說你必須保持它的靜態和嵌入在可執行文件中,你可以保持腳本外部並使用文件讀取函數來加載它進入內存然後用DLL中的lua函數執行它。 – gmlime 2012-07-31 06:11:52
「理想情況下,我希望能夠將Lua代碼編譯爲動態庫,這樣我就不必重新編譯主要的可執行文件。」我不明白如何將Lua構建爲DLL與重建主要可執行文件有任何關係。你多久一次重新編譯Lua *庫*?你在談論Lua解釋器還是Lua *腳本*? – 2012-07-31 23:03:21