2009-07-30 8 views
4

Je me demande si quelqu'un a des conseils pour intégrer Lua et VB6. Je cours un petit RPG en ligne qui serait génial pour ajouter des scripts.VB6 - Lua Integration

Répondre

5

Eh bien, c'est faisable. Je l'ai déjà fait pour Lua 5.0.2 mais je ne trouve pas les fichiers. Parmi les options que vous avez, vous pouvez:

  • Wrap Lua dans une dll COM exposant l'API Lua, donc en VB, vous pouvez ajouter une référence. Créez votre version Lua personnalisée, en utilisant la convention d'appel __stdcall, de sorte que vous puissiez utiliser Declare dans VB pour importer les fonctions Lua nécessaires. L'écriture d'une bibliothèque de types facilitera grandement l'intégration avec VB (principalement, elle effectuera la conversion des chaînes C en chaînes VB pour vous).

  • construire une DLL wrapper, qui reproduit l'interface Lua mais en utilisant __stdcall, en ajoutant les fonctions qui sont définies avec des macros, etc.

Je me souviens que l'aide d'une coutume construit Lua, je pourrais enregistrer des fonctions VB (défini en modules) dans Lua et les appeler à partir d'un script. Je ne me souviens pas si je l'ai eu pour appeler des fonctions membres.

J'espère que cela peut vous aider à démarrer.

+0

+1. Notez que le livre "Advanced Visual Basic 6" de Matt Curland inclut un moyen d'appeler les DLL CDECL à partir de VB6, mais il doit être utilisé avec discrétion car il ajoute un surcoût à chaque appel de fonction. Il pourrait être préférable de créer une version personnalisée de __stdcall de ce truc de LUA RPG. – MarkJ

+0

Surcoût correspondant à une taille de chaîne et à une performance :-)) – wqw

+0

@wqw: il est vrai que la surcharge n'est pas toujours pertinente, tout comme la surcharge d'une assignation de chaîne n'est généralement pas pertinente. – MarkJ

1

Utilisez LuaInterface. C'est une bibliothèque .NET qui vous permet d'utiliser lua. Cependant, il ne vient pas avec docs en soi, regardez this pour certains guides utiles.

Fondamentalement, vous ajoutez la DLL à votre projet et la référence/ajouter en utilisant satements, puis créer un nouvel objet Lua. À partir de là, vous pouvez y accéder comme un tableau pour extraire des variables, et il existe des méthodes pour appeler des fonctions lua et manipuler des tables.

+1

La question se réfère à VB 6 pas à VB .NET –