2010-06-08 5 views
3

J'ai un jeu en VB6 et ça marche très bien, mais je suis en train de jouer avec l'idée de créer un moteur de script. Je pense que je voudrais que VB6 lise les fichiers de script à plat pour moi, puis lex/parse/les exécute. J'ai une bonne expérience de programmation, et j'ai construit un simple compilateur C, ainsi qu'un émulateur LOGO avant.VB6 Parser/Lexer/Scripter

Ma question est: Y at-il des outils que je peux utiliser, comme Lexx/Yakk/Bison pour m'aider? Comment est-ce que je devrais aborder ce problème en ce qui concerne le lexing, l'analyse, et le renvoi des commandes à VB6 pour que je puisse les manipuler? Cette idée est-elle un BAD IDEA dans le sens où il y a trop d'obstacles sur le chemin (par exemple, construire un dragueur de mines en assemblage, mais pas impossible, est très difficile, et une mauvaise idée.)?

Répondre

2

Si vous souhaitez utiliser VBScript plutôt que VB6, vous pouvez utiliser le MSScriptControl pour exécuter les commandes plutôt que de créer les vôtres. Here est un article qui parle de l'utiliser depuis une application .Net, bien que ce soit un contrôle ActiveX, ce qui devrait vous donner un peu de flexibilité.

Le contrôle peut être téléchargé à partir de here.

+1

Je l'ai utilisé ScriptControl dans quatre projets et il fonctionne très bien. Très facile à intégrer. Je souhaite que Microsoft nous aurait donné un remplacement dans. NET, et l'a rendu aussi facile à utiliser. – AMissico

+0

+1 J'ai aussi utilisé ça, ça marche bien. Moi aussi je souhaite qu'il y ait un équivalent en .NET. Un mot d'avertissement, sachez qu'il n'est pas officiellement pris en charge sur Vista ou Windows 7. Francesco Balena a écrit un bon article sur l'utilisation de VB6 dans le * Visual Basic Programmers Journal * Novembre 2000, malheureusement, le problème ne semble pas être disponible en ligne plus. – MarkJ

+3

- * Conception d'une calculatrice * à l'adresse http://msdn.microsoft.com/en-us/library/aa227421(VS.60).aspx (Balena s'inspire peut-être de ce sujet.) – AMissico

2

J'ai effectivement vu quelques implémentations assez raisonnables de compilateurs/interpréteurs dans VB6 [1] - Ce n'est pas la langue que je choisirais (peu de fonctionnalités, système de type statique insuffisant), mais avec l'expérience, vous pouvez l'emporter et être très productif - Alors pourquoi pas.

Vous pouvez utiliser le GOLD parser generator qui prend en charge VB6 en tant que début.

[1]: Quelque part sur PSC ou dans ce download repository Je pense ...

Notez qu'il ya le MSScriptControl aussi.

4

Utilisez le Microsoft® Windows® Script de contrôle, car il est facile à intégrer dans des applications VB6 existantes. Le contrôle prend en charge VBScript, JScript ou toute autre implémentation "Active Script".

J'ai utilisé le Windows Script Control dans quatre projets et cela fonctionne extrêmement bien. Très facile à intégrer. Je souhaite que Microsoft nous aurait donné un remplacement dans. NET, et l'a rendu aussi facile à utiliser. (Je comprends le contrôle n'est pas nécessaire dans .NET, mais ayant la possibilité de créer simplement un objet qui gère tout est beau.)

Windows Script de contrôle

Microsoft® Windows® Le contrôle de script est un contrôle ActiveX® qui fournit aux développeurs un moyen facile de rendre leurs applications scriptables . Ceci, à son tour, permet aux utilisateurs d'étendre la fonctionnalité de l'application à travers scripts, tout comme ils le font avec les macros aujourd'hui.

+0

"Faites en sorte que votre application .Net prenne en charge les scripts - une approche pratique" sur http: //weblogs.asp.net/rosherove/articles/dotnetscripting.aspx – AMissico

+1

+1 Liste fantastique de liens! – MarkJ