xlua筆記 1 C 載入lua檔案

2022-09-25 08:15:08 字數 1512 閱讀 8627

執行字串

最基本是直接用luaenv.dostring執行乙個字串,當然,字串得符合lua語法 比如:

luaenv.dostring("print('hello world')")

完整**見xlua\tutorial\loadluascript\bystring目錄

但這種方式並不建議,更建議下面介紹這種方法。

載入lua檔案

用lua的require函式即可 比如:

dostring("require 'byfile'")

完整**見xlua\tutorial\loadluascript\byfile目錄

require實際上是調乙個個的loader去載入,有乙個成功就不再往下嘗試,全失敗則報檔案找不到。 目前xlua除了原生的loader外,還新增了從resource載入的loader,需要注意的是因為resource只支援有限的字尾,放resources下的lua檔案得加上txt字尾(見附帶的例子)。

建議的載入lua指令碼方式是:整個程式就乙個dostring("require 'main'"),然後在main.lua載入其它指令碼(類似lua指令碼的命令列執行:lua main.lua)。

自定義loader

在xlua加自定義loader是很簡單的,只涉及到乙個介面:

public delegate byte customloader(ref string filepath);

public void luaenv.addloader(customloader loader)

通過addloader可以註冊個**,該**引數是字串,lua**裡頭呼叫require時,引數將會透傳給**,**中就可以根據這個引數去載入指定檔案,如果需要支援除錯,需要把filepath修改為真實路徑傳出。該**返回值是乙個byte陣列,如果為空表示該loader找不到,否則則為lua檔案的內容。 有了這個就簡單了,用iips的ifs?沒問題。寫個loader呼叫iips的介面讀檔案內容即可。檔案已經加密?沒問題,自己寫loader讀取檔案解密後返回即可。。。 完整示例見xlua\tutorial\loadluascript\loader

總結:針對具體專案:  

1.專案內定義 luamanager.cs類monobeh**iour

2.使用文章中第二種方式:(建議的載入lua指令碼方式是:整個程式就乙個dostring("require 'main'"),然後在main.lua載入其它指令碼(類似lua指令碼的命令列執行:lua main.lua)) 進行專案lua的載入

luaenv.addloader(customloadermethod);
byte customloadermethod(ref

string

filename)

return

textasset.bytes;

}

xlua筆記 2 C 載入lua檔案

這裡指的是c 主動發起對lua資料結構的訪問。本章涉及到的例子都可以在xlua tutorial csharpcalllua下找到。獲取乙個全域性基本資料型別 訪問luaenv.global就可以了,上面有個模版get方法,可指定返回的型別。luaenv.global.get a luaenv.gl...

工作筆記1 C檔案操作

fopen函式用於開啟檔案,第乙個引數是檔案的路徑,第二個引數表示已怎樣的模式開啟,最後返回file型的指標。其中,mode可有以下的形態 r 以唯讀的形式開啟,檔案須存在 w 以寫的方式開啟,現有檔案將會被截斷為0 刪除原檔案 若檔案不存在,自動建立檔案。a 以寫模式開啟檔案,在現有檔案末尾寫入檔...

檔案排版1(C語言)

英文電影中參演人員名單一般以某種方式進行排版顯示。給定乙個未排版的檔案listin.txt,該檔案中每行參演人員名單由冒號 分隔成前後兩部分,但格式雜亂無章,單詞 由除空格和水平製表符之外的其它字元構成 之間可能有多個空格或水平製表符分隔。編寫程式,要求將其按如下排版規則排版輸出到另乙個檔案list...