Gå til innhold

Porte VB6 COM-objekt til .NET?


Anbefalte innlegg

Skrevet (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 av Spartakus

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...