2013-06-26 4 views
8

Ich bin auf der Suche nach einer Möglichkeit, Lua in meine plattformübergreifende Embed-Anwendung einzubetten. Das Problem ist - ich habe auf dieser Plattform keine vollständige, stabile, funktionierende Implementierung von Lua gefunden. Ich habe die folgende versucht (hier sind die Liste der Repositories und ihre Probleme):Cross-Plattform C# Implementierung von Lua

  • LuaInterface - me erfordern eine DLL für jede Plattform zu kompilieren, instabil, da v2 verwendet Windows
  • KopiLua - Fehler, auch ihre eigenen Proben nicht funktioniert
  • AluminiumLua - abhängig von DLL, also nicht eine Implementierung
  • NLua - basierend auf KopiLua und erbt alle Probleme
  • UniLua - ... es für die Einheit ist
Auch

, nicht die meisten dieser Implementierungen, wenn ich einen einfachen Test machen:

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

Von Zeit zu Zeit ist es ein Fehler aufruft, vor allem auf KopiLua und LuaInterface.

Die Frage ist: Gibt es eine vollständige, stabile Implementierung von Lua ausschließlich in C#, ohne irgendwelche Plattformabhängigkeiten?

+2

NLua basiert nicht auf KopiLua. NLua verwendet KopiLua nur für WindowsPhone (oder für reine C# Umgebungen). Aber NLua verwendet KeraLua (p/Aufruf der nativen Lua). –

Antwort

1

Wenn Sie keine gute reine C# -Bibliothek der lua-Implementierung finden, versuchen Sie, luabind eine Chance zu geben Wie in der Dokumentation gesagt, ist es tragbar. Sie könnten C++/CLI-Schnittstelle zwischen luabind und Ihrem Framework wie gesagt here machen Es ist sehr riskante Idee, aber Sie werden Tiefenkontrolle auf was passiert. Da luabind C++ - Wrapper von C Lua ist, wird es nicht zu schwierig sein, die Schnittstelle auf C# zu implementieren.