C 與Lua互動原理

2021-08-21 09:01:58 字數 1140 閱讀 6874

具體步驟: 

1,找到cocos自帶的繫結工具指令碼檔案genbindings.py,在cocos工程的frameworks/cocos2d-x/tools/tolua這個目錄下,把這個檔案開啟。

2,在開啟的genbindings.py檔案下面找到這麼一段**: 

這裡就是執行這個指令碼會自動生成lua繫結**的所有物件和這些物件所在的目錄與繫結**生成的目的路徑,#是注釋,通過它指定只生成修改過的模組的繫結**。

3,執行genbindings.py,開啟命令列工具,cd到這個目錄,再在當前目錄執行這個指令碼。(1,cd + tolua目錄路徑 2,./genbindings.py)

4,xcode重新編譯下c++**,繫結成功。

自定義類繫結到lua

1,寫好自定義類,我們一般把這個類放在classes目錄,我自己專案的目錄如下: 

2,寫好這個類的.ini配置檔案,copy其它的.ini配置,只需要改下類名空間,路徑等,多個類寫乙個配置裡資訊用空格隔開。具體示意圖如下: 

我的配置檔案: 

配置檔案主要修改地方: 

3,執行genbindings.py指令碼,就會在指定目錄自動生成自定義類繫結到lua的**。 

注意事項

1,自己新增的自定義類,打包到andriod上時,需要修改安卓的打包配置,把新增的檔案新增進去(不光針對這裡,所有打安卓包,新增的東西都是要加入到這個配置中才會拷貝)。示意圖如下: 

C 與Lua互動過程及原理

c 與lua互動過程 c call lua 由c 檔案先呼叫lua解析器底層dll庫 由c語言編寫 再由dll檔案執行相應的lua檔案 lua call c 1 wrap方式 首先生成c 原始檔所對應的wrap檔案,由lua檔案呼叫wrap檔案,再由wrap檔案呼叫c 檔案 2 反射方式 當索引系統...

C 與 Lua 互動原理和優化

過程過程盡量不要在 lua 中傳遞 unity 中的類,盡量只傳遞int,float,double 型別 解決方法 在 c 中封裝方法 unity 型別的賦值,使用 id int 代表對應 object 的傳遞 呼叫的 c 方法引數數量盡量少與4個 c 方法盡量為靜態方法 減少 lua gc 在 l...

C 與Lua互動(二)

c 與lua的之間函式的相互呼叫 1.c 調lua函式 c與lua的所有互動都是通過乙個棧來完成的。我對前面提到的虛擬機器l的理解是,它就是乙個棧 可能理解的不對 然後通過對這個棧的操作來實現資料的互動。呼叫函式跟訪問變數其實差不多,前面都是做一樣的事,只是呼叫函式時獲取的變數是函式名。然後將需要的...