com - telecharger - visual basic 6 windows 7



Décharger un contrôle COM lorsque vous travaillez dans l'IDE VB6 (1)

Une partie de mon travail quotidien consiste à maintenir et étendre les applications VB6 héritées. Un moteur commun est écrit en C / C ++ et VB6 utilise ces fonctions afin d'améliorer les performances.

Quand il s'agit de la programmation asynchrone, une interface C ne suffit pas et nous comptons sur les contrôles COM pour déclencher des événements sur VB6.

Mon problème est que lorsque j'enregistre le contrôle dans VB6, VB charge ce contrôle en mémoire et ne le décharge pas jusqu'à ce que je quitte l'EDI VB6. Comme le contrôle est chargé tout le temps, je suis incapable de le recompiler dans VC6, car le fichier DLL est verrouillé.

Une solution que j'ai trouvée est de ne pas activer le contrôle dans VB mais utiliser le CreateObject() avec le nom complet de mon contrôle. Le problème est que je dois déclarer mon contrôle en tant qu'objet car VB6 ne sait rien de l'interface que j'utilise et je n'ai pas accès à IntelliSense, ce qui est pénible.

Toute idée comment je peux dire à VB6 de décharger les contrôles après avoir quitté l'application ou directement dans l'EDI?


Je suis assez sûr qu'il n'y a pas de bon moyen de forcer VB6 à décharger le contrôle.

Voici ce que je fais ... au lieu d'exécuter Visual C et Visual Basic côte à côte, exécutez VB6 sous VC:

  1. Chargez VC
  2. Ouvrez le projet contenant vos objets COM
  3. Modifier, modifier, etc.
  4. Dans VC, définissez l'exécutable de sortie sur VB6.EXE avec les arguments de ligne de commande appropriés pour charger l'espace de travail VB6
  5. Maintenant, appuyez sur F5 pour lancer l'IDE VB6 et charger votre projet VB6
  6. Lorsque vous souhaitez modifier à nouveau le code COM, quittez VB6.EXE, apportez vos modifications et appuyez de nouveau sur F5. Tant que vous sauvegardez votre espace de travail, VB6 se souviendra des fenêtres que vous avez ouvertes et de tous les paramètres de votre projet.

Les avantages de cette méthode:

  • Vous pouvez définir des points d'arrêt dans l'objet COM et le déboguer à l'aide d'un débogueur source complet
  • Vous pouvez heureusement déboguer en C et VB en même temps
  • Chaque fois que VB6 est en cours d'exécution, il a toujours la dernière version des DLL COM