2013-06-26 12 views
8

私はクロスプラットフォームの埋め込みアプリケーションにLuaを埋め込む方法を探しています。問題は - 私はこのプラットフォーム上でLuaの完全で安定した、動作している実装を見つけられませんでした。私は(ここでは、リポジトリとその問題のリストがある)次のことを試してみた:LuaのクロスプラットフォームC#実装

  • LuaInterface - でもエラー、 - v2はWindowsの
  • KopiLuaを使用しているため、不安定な、すべてのプラットフォーム用のDLLをコンパイルするために私を必要とします自分のサンプルは
  • AluminiumLuaを動作しません - DLLに依存し、そのため、実装ではなく
  • NLua -
  • UniLuaがKopiLuaをもとにして継承し、すべての問題 - ...それは団結のためだ

また、これらの実装のほとんどは、私は簡単なテストを行う際に失敗します。随時

for(i=0;i<100000;i) 
    Lua.CallSomeFunctionFromLua() 

を、それは特にKopiLuaとLuaInterfaceに、エラーを呼び出します。

質問は次のとおりです。Luaの完全な安定した実装は、プラットフォーム依存性のないC#で厳密には何ですか?

+2

NLuaはKopiLuaに基づいていません。 NLuaはKopiLuaをWindowsPhone(または純粋なC#環境)にのみ使用します。しかし、NLuaはKeraLua(p /ネイティブLuaを呼び出す)を使用しています。 –

答えて

1

純粋なC#ライブラリのlua実装が見つからない場合は、luabindにチャンスを与えようとしています。ドキュメントに記載されているように、移植性があります。あなたはルアビンドとあなたのフレームワークのようなC++/CLIインターフェイスを作ることができますhereそれは非常に危険なアイデアですが、あなたは何が起こっているかについて深いコントロールを持っています。 luabindはC++のC++ラッパーであるため、C#でインタフェースを実装するのは難しくありません。