1. 程式人生 > >c# lua 簡單互動

c# lua 簡單互動

64位下 目標平臺需要設定為 X86

轉:

c# 與 lua 的互動 比較簡單, 一下為例子:

c# 檔案內容:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using LuaInterface;         // lua 封裝庫
  5. namespace lua_test  
  6. {  
  7.     class MyClass           // 自定義類
  8.     {  
  9.         publicstring MyStr(string s)   // 自定義功能函式
  10.         {  
  11.             return s + " World !";  
  12.         }  
  13.     }  
  14.     class Program  
  15.     {  
  16.         publicstatic Lua m_lua = new Lua();        // 建立lua虛擬機器
  17.         staticpublicvoid init()  
  18.         {  
  19.             MyClass my = new MyClass();             // 建立自定義類 例項
  20.             // 在lua虛擬機器(全域性)中註冊自定義函式,一邊在lua檔案中呼叫該函式
  21.             m_lua.RegisterFunction("MyStr", my, my.GetType().GetMethod("MyStr"));  
  22.             m_lua.DoFile("lua_test.lua");           // 載入lua檔案(絕對路徑)
  23.         }  
  24.         staticvoid Main(string[] args)  
  25.         {  
  26.             init();  
  27.             // 載入亂檔案後,使用GetFunction獲取函式,再呼叫Call執行(傳引數)
  28.             object
    [] objs = m_lua.GetFunction("MyNum").Call(100);  
  29.             // Call函式的返回值為一個object陣列
  30.         }  
  31.     }  
  32. }  
 

lua檔案(lua_test.lua)內容:

function MyNum(i)

s = MyStr("Hello");

return i,s;

end

執行完後 objs 中 2 個值 為100 和 Hello World !