Spartakus Skrevet 24. august 2008 Del Skrevet 24. august 2008 (endret) Hei, lurte litt på om noen har erfaring med å porte VB6 COM-objekter til .NET? Jeg bruker en applikasjon som lar seg tilpassse på enkelte steder. Jeg kan benytte seg av et API, men applikasjonen er skrevet i VB6 og API-dokumentasjonen likeså. Component interface: mycomponent.clsmyclass Declaration: (en del forenklet) Public Function DoSomething(ByVal v_SomeString As String, ByRef r_MyCols(), ByRef r_MyValues()) De to siste parameterne er arrays, litt usikker på datatypen, vil tippe det er enten Variant eller String. Funksjonen returnerer et 2d-array, selv om det ikke kommer frem av funksjonsdeklarasjonen. Mitt .NET/C# forslag sålangt: public class clsmyclass { public object[,] DoSomething(string v_SomeString, ref object[] r_MyCols, ref object[] r_MyValues) { System.IO.File.WriteAllText("C:\\debug.txt", "OMFG! :D:D:D"); object[,] r = new object[2, 1]; r[0, 0] = "1"; r[1, 0] = ""; return r; } } Jeg har huket av for "Register for COM interop" på prosjektets egenskaper. Er det tilsvarende RegAsm.exe? Jeg får nemlig bare testet komponenten i et virtuelt miljø på pc'en min, mens utviklingen skjer på host-pc'en. Jeg har registrert den slik: RegAsm.exe MyComponent.dll /tlb:MyComponent.tlb Prøvde en test, men fikk en lite spesifisert feil i applikasjonen som forsøkte å kalle på komponenten min? Noen som har noen tips? Noen åpnenbare feil på min lille kodesnutt så langt? Endret 24. august 2008 av Spartakus Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå