2013-06-26 14 views
8

Sto cercando un modo per incorporare Lua nella mia applicazione di incorporamento multipiattaforma. Il problema è che non ho trovato alcuna implementazione completa, stabile e funzionante di Lua su questa piattaforma. Ho provato quanto segue (qui sono la lista dei repository e dei loro problemi):Implementazione multipiattaforma C# di Lua

  • LuaInterface - mi richiede di compilare una DLL per tutte le piattaforme, instabile, in quanto utilizza v2 di Windows
  • KopiLua - errori, anche propri campioni non funziona
  • AluminiumLua - dipende dalla DLL, quindi, non un'implementazione
  • NLua - sulla base KopiLua ed eredita tutti i problemi
  • UniLua - ... è per l'unità

Inoltre, la maggior parte di queste implementazioni fallisce quando faccio un semplice test:

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

di tanto in tanto si invoca un errore, in particolare su KopiLua e LuaInterface.

La domanda è: esiste un'implementazione completa e stabile di Lua rigorosamente in C#, senza alcuna dipendenza dalla piattaforma?

+2

NLua non è basato su KopiLua. NLua utilizza KopiLua solo per WindowsPhone (o per ambienti C# puri). Ma NLua usa KeraLua (p/Invoca il nativo Lua). –

risposta

1

Se non trovi una buona libreria C# pura di implementazione lua prova a dare una possibilità a luabind Come detto nella documentazione è portatile. È possibile creare un'interfaccia C++/CLI tra luabind e il framework come detto here È un'idea molto rischiosa, ma si avrà un controllo approfondito su ciò che sta accadendo. Poiché luabind è un wrapper C++ di C Lua, non sarà troppo difficile implementare l'interfaccia su C#.