nlua的基本配置使用

2021-09-25 08:00:07 字數 1980 閱讀 1499

近來想測試伺服器增加熱更新能力,考慮加入lua熱更新。

目前鵝廠的xlua也是基於nlua的早期版本開發的,黑歷史可以參考(

nlua官網(

nlua的前身是luainte***ce,2.0.3版後改名為nlua

luainte***ce只具有簡單的函式註冊和變數值傳遞的功能,確實看上去像乙個簡單的inte***ce

nlua後,作者做了一些改進,支援了c#物件不需要註冊在lua裡使用,呼叫成員等等(不需要乙個個註冊,但需要匯入namespace,nlua會通過反射進行物件掃瞄)。

建立c#工程,必須.net4.5以上。

編譯後,可以看到,對c++的dll,分別維護了64位和32位的版本。

傳值呼叫

lua["vint"] = 20;

lua["vstr"] = "from c#";

lua.dostring("vint = vint+1");//執行lua指令碼**

// 註冊clr物件方法到lua,供lua呼叫

lua.registerfunction("testprint", obj, obj.gettype().getmethod("testprint"));

// 註冊clr靜態方法到lua,供lua呼叫

lua.registerfunction("teststaticprint", null, typeof(testclass).getmethod("teststaticprint"));

lua.dostring("testprint(10)");

lua.dostring("teststaticprint()");

這裡分別註冊了成員函式和靜態函式到lua,lua呼叫順利完成。

這是nlua中引入的新特性,相對比較複雜一些

我們分別通過c#和lua建立了乙個c#中定義的型別的物件。然後呼叫各自的成員函式都成功了。

這裡的lua.loadclrpackage是為了自動匯入clr中的框架資料結構型別

而import操作,需要把(assembly, namespace)匯入到lua的命名空間。完成後lua就完成了對c#自定義型別的繫結了。

Git 基本使用配置

git config global user.name aaroncnhk git config global user.email aaroncnhk qq.com 2.文字編輯器 在需要輸入必要的文字資訊時呼叫,比如提交更新時忘了加注釋。一般情況會用系統預設的編輯器,比如vi vim。當然也可以...

使用Struts標籤的基本配置

使用struts標籤的基本配置 墨爾本晴 5.5.1 使用struts標籤之前需要經過下面3個步驟的配置。匯入tld檔案。在web.xml中註冊標籤庫。在頁面中引入標籤庫。下面詳細介紹以上步驟。匯入tld檔案。tld檔案是struts的標籤庫描述檔案,一般將其直接複製到應用工程的web inf目錄下...

Mybatis的基本配置和使用

resource config data.properties name com.etc.entity typealiases default development id development type jdbc type pooled name driver value name url va...