Laden...

c# klasse in vb6 instanzieren

Erstellt von c#_gast vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.531 Views
C
c#_gast Themenstarter:in
71 Beiträge seit 2005
vor 17 Jahren
c# klasse in vb6 instanzieren

hallo,
ich versuche eine c#-klasse, welche in einer comvisible dll ist, in vb6 zu instanzieren.
ich habe schon 2 möglichkeiten ausprobiert:


Dim test As New myDLL.myClass

dabei bekomme ich einen Automatisierungsfehler wenn ich dann eine Methode daraus aufrufen will.


Dim test As Object
Set test= CreateObject("myDLL.myClass")

dabei bekomme ich auch einen Automatisierungsfehler.

was mache ich denn falsch??

476 Beiträge seit 2004
vor 17 Jahren

hallo c#_gast,

das kann an vielen Stellen liegen, aber vermutlich daran, dass du Datentypen als Rückgabewerte hast, die es in VB6 nicht gibt... zum Beispiel decimal oder eine DataTable.

Wenn dem so ist, würde ich dir raten einen COMWrapper zu schreiben, der deine Methodenaufrufe für COM wrappt, so musst du innerhalb deiner .NET Logik darauf keine Rücksicht nehmen.

Ich habe diesbezüglich auch ein kleines Beispiel-Projekt hochgeladen. Vielleicht findest du dort bzw. mit Hilfe der Forumsuche noch weitere Punkte falls meine Vermutung nicht zu trifft.

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

C
c#_gast Themenstarter:in
71 Beiträge seit 2005
vor 17 Jahren

naja, bei der Methode die ich Aufruf geb ich nur nen String zurück. oder passen die String-Datentypen aus VB6 und C# nicht zusammen??

476 Beiträge seit 2004
vor 17 Jahren

hallo c#_gast,

doch, die String's passen zusammen. Aber schau dir doch einfach mal das Beispiel Projekt an und finde die Unterschiede heraus. Wie du sagst, hast du deine .NET dll ja für COMInterop registriert, daran sollte es nicht liegen. Hast du die COM-Visible Attribute definiert, DispID's vergeben?

Überladene Methoden gibt's in VB6 auch nicht...

-yellow

Selbst ein Weg von tausend Meilen beginnt mit einem Schritt (chinesisches Sprichwort).

Mein Blog: Yellow's Blog auf sqlgut.de

C
c#_gast Themenstarter:in
71 Beiträge seit 2005
vor 17 Jahren

da hätte ich mal noch eine frage:
Was sind eigentlich die DispIDs und für was ist das Interface genau da?