2009-07-19 7 views
0

Je vois qu'il existe des outils pour convertir .h en Python, Perl, D, Pascal, etc. Y en a-t-il pour VB6 ou tout autre outil semblable à VB (comme Jabaco par exemple)?Outil pour convertir les fichiers d'en-tête C (.h) en VB?

+1

Ceci est difficile. Le problème général est qu'à cause des pointeurs, il est très facile de définir des structures de données dans les fichiers d'en-tête C avec lesquels VB6 ne peut pas interagir. Avec les objets VB6, vous pouvez presque toujours créer une structure * équivalente *, mais ils ne sont pas interopérables (c'est-à-dire qu'ils ne sont pas compatibles avec les appels). – RBarryYoung

+0

en lisant la question, il demande simplement l'équivalent mais pas l'interopérabilité. Juste mon interprétation cependant. – jalf

+0

L'équivalence est tout ce que je veux. Le projet consiste à faire un cadre pour faire FastCGI en VB6. Oui, la folie court dans la famille. – bugmagnet

Répondre

0

Si vous avez le temps, vous pouvez écrire le par vous-même en utilisant le langage de transformation TXL.

Mais bien sûr, la question qui se pose est que cela vaut la peine de prendre le temps d'apprendre de nouveaux outils contre cela manuellement ou d'une autre manière.

+0

Oui, j'ai entendu parler de TXL. Courbe d'apprentissage assez raide, cependant. Merci. – bugmagnet

+0

Si le volume pour le travail est assez grand, nous pouvons discuter des moyens possibles pour faire le convertisseur – msorc

1

Comme d'autres réponses l'ont observé, vous pouvez utiliser un moteur de transformation de programme pour automatiser la génération de tels en-têtes à partir du code source C. Cependant, ce dont vous avez vraiment besoin, c'est d'un moteur de transformation de programme qui comprend déjà C, car analyser C et savoir quels sont les types est une tâche très difficile. (Demandez aux compilateurs GNU, ou regardez simplement le code source de GCC). Les systèmes de transformation purs (par exemple, ceux qui n'ont pas de frontaux C) vous serviront mal, car vous devrez générer vous-même toutes les données de cette table de symboles.

Le DMS Software Reengineering Toolkit est une transformation de programme complet, qui a une un full featured C front end, y compris préprocesseur, la construction AST, la construction de la table des symboles, l'analyse de contrôle et de flux de données, les points à l'analyse, appelez la construction graphique, ... Tout de ces résultats peuvent être utilisés dans le processus de transformation pour faciliter votre travail.

Comme d'autres systèmes de transformation de programme, il existe une courbe d'apprentissage abrupte. Cependant, vous devez comparer cela au coût de a) ne pas avoir de réponse et faire toute cette traduction à la main, de façon répétée, et b) le coût de construction de votre propre frontend C, et c) cela augmente considérablement la probabilité que vous obtiendra effectivement un résultat qui fonctionne. De ce point de vue, à mon humble avis, il est bon marché.

Questions connexes