Question

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

Lorsqu'il s'agit de programmation asynchrone, une interface C ne suffit pas et nous nous appuyons sur les contrôles COM pour déclencher des événements vers 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'IDE VB6.Le contrôle étant chargé en permanence, je ne parviens 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 en VB mais d'utiliser le CreateObject() avec le nom complet de mon contrôle.Le problème est alors que je dois déclarer mon contrôle comme 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 comment dire à VB6 de décharger les contrôles après avoir quitté l'application ou directement dans l'IDE ?

Était-ce utile?

La solution

Je suis presque sûr qu'il n'existe aucun 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 CV :

  1. Charger 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, effectuez 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 volontiers 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.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top