com - tutorial - visual studio installer visual basic 6



Scarica un controllo COM quando si lavora in VB6 IDE (1)

Parte del mio lavoro quotidiano è il mantenimento e l'estensione delle applicazioni VB6 legacy. Un motore comune è scritto in C / C ++ e VB6 utilizza queste funzioni per migliorare le prestazioni.

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

Il mio problema è che quando registro il controllo in VB6, VB carica questo controllo in memoria e non lo scarica finché 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 è di abilitare il controllo in VB ma utilizzare CreateObject() con il nome completo del mio controllo. Il problema è che devo dichiarare il mio controllo come oggetto perché VB6 non sa nulla dell'interfaccia che sto usando e non ho accesso a IntelliSense, che è un dolore.

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


Sono abbastanza sicuro che non c'è un buon modo per forzare VB6 a scaricare il controllo.

Ecco cosa faccio ... invece di eseguire Visual C e Visual Basic side-by-side, eseguire VB6 in VC:

  1. Carica su VC
  2. Apri il progetto contenente gli oggetti COM
  3. Modifica, modifica, ecc.
  4. In VC, impostare l'output eseguibile come VB6.EXE con gli argomenti della riga di comando appropriati per caricare l'area di lavoro VB6
  5. Ora basta premere F5 per lanciare l'IDE VB6 e caricare il progetto VB6
  6. Quando si desidera modificare nuovamente il codice COM, uscire da VB6.EXE, apportare le modifiche e premere nuovamente F5. Finché si salva lo spazio di lavoro VB6 ricorderà quali finestre sono state aperte e tutte le impostazioni del progetto.

Vantaggi di questo metodo:

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