Parcourir les objects VB6 COM enveloppés par .NET Class

J’ai un object VB6 qui est encapsulé par une classe .NET. Autant que je me souvienne, il est possible de parcourir un object VB6 (compilé en tant que bibliothèque) en exécutant simplement la bibliothèque VB6 et en insérant un point d’arrêt à l’emplacement souhaité.

Cependant, cela ne semble pas fonctionner dans mon cas. J’ai essayé de recomstackr l’object VB6 et de le référencer de nouveau dans mon projet .NET, mais cela ne semble pas l’avoir aidé.

Où vais-je d’ici? Est-il possible d’insérer l’équivalent de Debugger.Launch() dans un projet VB6? Toute aide serait appréciée!!

Levé du blog de robgruen :

Si vous utilisez interop pour appeler une dll ou une exe ActiveX VB6 et que vous devez déboguer votre projet VB6, VS.NET et l’IDE VB6 peuvent être ouverts. Cela peut certainement être loin d’être efficace.

En règle générale, vous définissez votre projet VB6 sur «Attendre la création du composant», puis vous lancez votre application .NET, puis vous atteignez des points d’arrêt dans le composant VB6. Eh bien, il existe un moyen plus facile de faire cela. Vous pouvez réellement déboguer votre composant VB6 dans VS.NET. Voici ce que vous devez faire:

1) Construisez votre projet VB6 avec des symboles. Dans VB6, ouvrez votre fichier vbp et accédez à «Projet-> Propriétés». Sélectionnez l’onglet «Comstackr» et cochez «Comstackr en code natif». Sélectionnez ensuite le bouton radio «Aucune optimisation», puis Cochez “Créer des informations de débogage symboliques”.

Cela générera un fichier .PDB (programme de firebase database) avec votre fichier .exe. Ce fichier contient les informations de débogage afin que le débogueur VS.NET puisse aligner la source, atteindre les points d’arrêt, etc. (Assurez-vous que la compatibilité binary de votre jeu de dll VB6 est compatible ou vous devrez supprimer et rappend votre référence à VB6. composant dans VS.NET.)

2) Ouvrez votre projet .NET dans VS.NET.

3) Accédez aux propriétés du projet, sélectionnez la page de propriétés «Propriétés de configuration-> Débogage» et activez le débogage non géré.
Pour les projets VB.NET, cette option est «Débogage de code non managé» et pour C #, «Activer le débogage non managé».

4) Sélectionnez la page de propriétés de la solution.

5) Ajoutez aux «Fichiers sources de débogage» une entrée qui pointe vers le chemin où se trouve le code source du composant VB6.

6) Ajoutez aux «Fichiers de symboles de débogage» une entrée qui pointe vers le dossier contenant le fichier .PDB généré à l’étape 1.

7) Vous devriez maintenant pouvoir ouvrir vos fichiers .bas, .cls, .frm, etc. dans VS.NET et placer des points d’arrêt dans le fichier. Une fois que vous aurez débogué, le débogueur s’arrêtera sur ces lignes de code.