Eigenartiges Interop Verhalten

21/11/2007 - 07:56 von Alfred Malleier | Report spam
Hallo,

in VB6 instanziere ich über spàte Bindung eine Klasse aus einer .NET
Assembly, welche für COM-Interop ausgestattet ist.
Diese .NET InterOp-Komponente referenziert ihrerseits weitere .NET
Assemblies, welche nicht für COM-InterOp gemacht sind.

Das sieht etwa so aus:

'In VB6:
Sub InVB6
Set AxClass = CreateObject("AxProj.ComInterOpDotNet")
MsgBox "Die Antwort ist: " & AxClass.Ergebnis
End Sub

'die InterOp Klasse:
Public Class ComInterOpDotNet

Public Function AxErgebnis as Boolean
Dim DNET as New REineDotNet
Return DNET.Ergebnis
End Sub

End Class

'die reine .NET Klasse:
Public Class ReineDotNet

Public Function Ergebnis as Boolean
Return True
End Sub

End Class

Wenn ich das VB6-Projekt aus der IDE ausführe, funktioniert es korrekt. Bis
gestern auch das kompilierte Programm.
Auf einmal, wenn ich das kompilierte Programm starte, erhalte ich die
Meldung, dass die Methode 'Ergebnis' nicht gefunden werden kann:

Methode nicht gefunden: Void Projx.ReineDotNet..ctor()
(also beim Instanzieren der reinen .NET-Klasse gibt es Fehler. Ich habe es
mit statitischen Methoden versucht, die ganze Schnittstelle wird nicht
gefunden)

Alle weiteren Methoden und Eigenschaften der InterOp-Klasse antworten
korrekt.
Ich habe versucht die Assembly über System.Reflection aus zu lesen und das
funktioniert auch korrekt.

Welches Problem kann hier vorliegen? Wàre dankbar für eine Antwort.

Grüße Alfred M.
 

Lesen sie die antworten

#1 Alfred Malleier
22/11/2007 - 10:07 | Warnen spam
"Alfred Malleier schrieb:

Welches Problem kann hier vorliegen?



Wem's interessiert:

wàhrend die .NET InterOp Dll im Bin-Verzeichnis des .NET Projektes liegt,
muss die .NET Dll, welche von ihr referenziert wird, in das Verzeichnis der
VB6-Anwendung kopiert werden.

Grüße Alfred M.

Ähnliche fragen