Gå til innhold

C#: Bruke VB6.0 komponenter fra C#(hWnd, ActiveX)


Anbefalte innlegg

Har letet masse om dette på nettet, men ikke helt funnet eksempler som ligner direkte på det jeg skal få til.

 

Det jeg ønsker er følgende.

 

  • Hovedapplikasjonen(exe filen) er utviklet i C#. Denne skal bruke funksjonalitet i et bibliotek utvikling i VB 6.0( i dag er dette en dll).
  • Biblioteket i VB har en rekke metoder for å manipulere data. Dette oppdaterer en intern PictureBox (VB 6.0 komponent).
  • Tanken er at pictureboxen fra dllen skal legges inn i en C# form ved å sende over en referanse som en hWnd? Men usikker på om dette går an. Finnes det alternative måter dette kan gjøres på?
  • Er det evt enklere å gjøre pictureboxen tilgjengelig på et vis(kanskje vi hWnd) til C# slik at C# tar seg av å legge pictureboxen inn i en form?
  • Har på følelsen av en av de 2 variantene over burde være mulig å implementere. men har ikke fått til dette selv. Har også lest noe om at VB 6.0 bibliotektet burde være kompilert som et ActiveX bibliotek? Kjenner ikke så godt til ActiveX så kan ikke helt uttale meg om dette.

 

Spør litt dumt sikkert men håper noen kan sende meg i riktig retning om de vet hva som går an. Det jeg ønsker er noe tilsvarende løsningen under der en integrerer Google Earth i en C# form. Problemet mitt er at jeg mangler VB 6.0 kunnskaper for å få til det jeg ønsker:

http://www.codeproject.com/KB/miscctrl/google_earth_embed.aspx

Lenke til kommentar
Videoannonse
Annonse

Supert. Det betyr at jeg må kompilere VB koden til ActiveX (osx fil eller noe sånt) for at den skal ha COM støtte da?

 

Er jeg inne på noe tror du i forhold til bruk av hWnd for å sende over picturebox? Eller kan dette løses mer direkte når den brukes som en ActiveX komponent. Greier du å sparke meg i riktig retning så skal jeg sikkert finne ut av resten :)

Lenke til kommentar

Hwnd vil jeg tippe er temmelig irrelevant. Hwnd kalles Handle i Widows Forms, men jeg skjønner ikke helt hvorfor du skal trenge å rote med dette.

Kompiler til dll eller ocx, så kan du importere i .NET. Merk at VB6 kun kompilerer til 32-bit og du burde derfor bytte fra Any CPU til x86.

Lag komponenten som om du ville gjort i et VB6 prosjekt. Kompiler til Dll eller Ocx og importer i .NET. Deretter tror jeg det skal fungere mer eller mindre sømløst.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...