Poista COM-säädin, kun työskentelet VB6 IDE: ssä

Translate

Osa päivittäisestä työstäni on vanhojen VB6-sovellusten ylläpito ja laajentaminen. Yhteinen moottori on kirjoitettu kielellä C / C ++, ja VB6 käyttää näitä toimintoja suorituskyvyn parantamiseksi.

Asynkronisen ohjelmoinnin osalta C-liitäntä ei riitä, ja luotamme COM-ohjaimiin tapahtumien käynnistämiseksi VB6: lle.

Minun ongelmani on, että kun rekisteröin ohjauksen VB6: een, VB lataa tämän ohjaimen muistiin eikä pura sitä ennen kuin lopetan VB6 IDE: n. Koska ohjausobjektia ladataan koko ajan, en voi kääntää sitä uudelleen VC6: een, koska DLL-tiedosto on lukittu.

Ratkaisu, jonka löysin, ei ole sallia ohjausta VB: ssä, vaan käyttääCreateObject()hallinnoni koko nimellä. Ongelmana on siis se, että minun on ilmoitettava ohjausobjektini objektina, koska VB6 ei tiedä mitään käyttämästäni käyttöliittymästä eikä minulla ole pääsyä IntelliSenseen, mikä on tuskaa.

Onko mitään käsitystä siitä, kuinka voin kertoa VB6: lle purkamaan ohjaimet sovelluksen lopettamisen jälkeen tai suoraan IDE: ssä?

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

Kaikki vastaukset

Translate

Olen melko varma, ettei ole hyvää tapaa pakottaa VB6: ta purkamaan ohjaus.

Näin teen ... sen sijaan, että suoritan Visual C: n ja Visual Basicin rinnakkain, suorita VB6allaVC:

  1. Lataa VC
  2. Avaa projekti, joka sisältää COM-objektisi
  3. Muokkaa, muuta jne.
  4. Aseta VC: ssä Output Executable -asetukseksi VB6.EXE sopivilla komentoriviargumenteilla VB6-työtilan lataamiseksi
  5. Napsauta vain F5 käynnistääksesi VB6 IDE: n ja lataa VB6-projektisi
  6. Kun haluat muuttaa COM-koodin uudelleen, sulje VB6.EXE, tee muutokset ja paina F5 uudelleen. Niin kauan kuin tallennat työtilan, VB6 muistaa avaamasi ikkunat ja kaikki projektiasetuksesi.

Tämän menetelmän edut:

  • Voit asettaa katkaisupisteet COM-objektissa ja virheenkorjata sen käyttämällä täyden lähteen virheenkorjainta
  • Voit mielellään debugata C: ssä ja VB: ssä samanaikaisesti
  • Aina kun VB6 on käynnissä, sillä on aina uusin versio COM-DLL-tiedostoista
Lähde