Décharger un contrôle COM lorsque vous travaillez dans VB6 IDE

Translate

Une partie de mon travail quotidien consiste à maintenir et à étendre les anciennes applications VB6. Un moteur commun est écrit en C / C ++ et VB6 utilise ces fonctions pour améliorer les performances.

En ce qui concerne 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 tant que je ne quitte pas l'IDE VB6. Comme le contrôle est chargé tout le temps, je ne peux pas le recompiler dans VC6, car le fichier DLL est verrouillé.

Une solution que j'ai trouvée n'est pas d'activer le contrôle dans VB mais d'utiliser leCreateObject()avec le nom complet de mon contrôle. Le problème est alors 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.

Une idée de la façon dont je peux dire à VB6 de décharger les contrôles après avoir quitté l'application ou directement dans l'EDI?

This question and all comments follow the "Attribution Required."

Toutes les réponses

Translate

Je suis presque 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 VB6en dessous deVC:

  1. Chargez VC
  2. Ouvrez le projet contenant vos objets COM
  3. Modifier, changer, 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 simplement 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 à nouveau sur F5. Tant que vous enregistrez votre espace de travail, VB6 se souviendra des fenêtres ouvertes et de tous les paramètres de votre projet.

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 dispose toujours de la dernière version des DLL COM
La source