Scaricare un controllo COM quando si lavora nell'IDE VB6

Translate

Parte del mio lavoro quotidiano consiste nel mantenere ed estendere le applicazioni VB6 legacy. Un motore comune è scritto in C / C ++ e VB6 utilizza queste funzioni per migliorare le prestazioni.

Quando si tratta di programmazione asincrona, un'interfaccia C non è sufficiente e ci affidiamo ai controlli COM per attivare gli eventi su VB6.

Il mio problema è che quando registro il controllo in VB6, VB carica questo controllo in memoria e non lo scarica fino a quando non esco dall'IDE VB6. Poiché il controllo viene caricato per tutto il tempo, non riesco a ricompilarlo in VC6, perché il file DLL è bloccato.

Una soluzione che ho trovato non è quella di abilitare il controllo in VB ma usare ilCreateObject()con il nome completo del mio controllo. Il problema quindi è che devo dichiarare il mio controllo come un oggetto perché VB6 non sa nulla dell'interfaccia che sto utilizzando e non ho accesso a IntelliSense, il che è un problema.

Qualche idea su come posso dire a VB6 di scaricare i controlli dopo aver chiuso l'applicazione o direttamente nell'IDE?

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

Tutte le risposte

Translate

Sono abbastanza sicuro che non ci sia un buon modo per forzare VB6 a scaricare il controllo.

Ecco cosa faccio ... invece di eseguire Visual C e Visual Basic fianco a fianco, esegui VB6sottoVC:

  1. Carica VC
  2. Apri il progetto contenente i tuoi oggetti COM
  3. Modifica, cambia, ecc.
  4. In VC, impostare l'eseguibile di output su VB6.EXE con gli argomenti della riga di comando appropriati per caricare l'area di lavoro VB6
  5. Ora premi F5 per avviare l'IDE VB6 e caricare il tuo progetto VB6
  6. Quando si desidera modificare nuovamente il codice COM, uscire da VB6.EXE, apportare le modifiche e premere nuovamente F5. Finché salvi il tuo spazio di lavoro, VB6 ricorderà quali finestre avevi aperto e tutte le impostazioni del tuo progetto.

Vantaggi di questo metodo:

  • È possibile impostare punti di interruzione nell'oggetto COM ed eseguirne il debug utilizzando un debugger di origine completo
  • Puoi felicemente eseguire il debug in C e VB allo stesso tempo
  • Ogni volta che VB6 è in esecuzione, ha sempre l'ultima versione delle DLL COM
fonte