2013-06-26 16 views
8

Szukam sposobu na umieszczenie Lua w mojej aplikacji do umieszczania na różnych platformach. Problem polega na tym, że nie znalazłem żadnej kompletnej, stabilnej, działającej implementacji Lua na tej platformie. Próbowałem następujące (Oto lista repozytoriów i ich problemy):Wieloplatformowa implementacja C# Lua

  • LuaInterface - wymagają mi skompilować dll dla każdej platformy, niestabilna, ponieważ v2 wykorzystuje Windows
  • KopiLua - błędy, nawet własne próbki nie działa
  • AluminiumLua - zależy od DLL, dlatego nie implementacja
  • NLua - w oparciu o KopiLua i dziedziczy wszystkie problemy
  • UniLua - ... to dla jedności

Ponadto, większość z tych implementacjach nie kiedy zrobić prosty test:

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

Od czasu do czasu wywołuje błąd, zwłaszcza na KopiLua i LuaInterface.

Pytanie brzmi: czy istnieje pełna, stabilna implementacja Lua w języku C#, bez zależności między platformami?

+2

NLua nie jest oparty na KopiLua. NLua używa KopiLua tylko dla WindowsPhone (lub dla czystych środowisk C#). Ale NLua używa KeraLua (p/Wzywając rodzimego Lua). –

Odpowiedz

1

Jeśli nie znajdziesz dobrej czystej biblioteki C# implementacji lua spróbuj dać szansę na luabind Jak wspomniano w dokumentacji jest przenośny. Możesz stworzyć interfejs C++/CLI pomiędzy luabind a twoją strukturą, jak powiedział here Jest to bardzo ryzykowny pomysł, ale będziesz miał kontrolę nad tym, co się dzieje. Ponieważ luabind jest opakowaniem C++ C Lua, nie będzie zbyt trudno implementować interfejs w C#.