2008-10-30 14 views
2

Est-ce que quelqu'un connaît des DLL (de préférence .net) qui encapsulent le compilateur lua 5.1? Je travaille sur un projet .net dont une partie a besoin de compiler des scripts lua, et je préfère avoir une DLL à laquelle je pourrais envoyer du code de script au lieu d'envoyer le script dans un fichier temporaire et d'exécuter luac.exe.Existe-t-il des DLL .NET implémentant la fonctionnalité de luac?

Editer: J'ai besoin d'une bibliothèque .NET qui implémente luac de manière à ce qu'elle délivre un lua bytecode standard (et non une bibliothèque lua qui compile au CLR). La compilation du code source de lua c n'a pas fonctionné, car lorsque j'ai inclus une référence à la dll dans un projet C#, Visual Studio s'est plaint que ce n'était pas un assemblage valide. Mes recherches jusqu'ici n'ont rien trouvé.

Répondre

1

tout le code pour luac est distribué avec lua ... serait trivial pour en faire une DLL.

1

Vous pouvez émuler luac dans Lua, grâce à la commande suivante tirée de the lua-users wiki:

lua -e 'io.write(string.dump(assert(loadfile())))' <sample.lua >sample.out 

Alors si vous alliez faire cela au niveau de l'API en C (même si je sais que vous utilisez .NET), cela devrait ressembler à

lua_dostring(L, "string.dump(assert(loadstring([==[YOUR CODE HERE]==])))"); 
size_t sz; 
char *output = lua_tolstring(L, -1, &sz); 

Ensuite, enregistrez simplement sz caractères dans votre fichier de sortie. Je me rends compte que c'est un peu une réponse tardive, mais comme il n'y en avait pas déjà une ici, je me suis dit que j'allais essayer de le faire.