VB.NET COM Komponente beendet alles

10/01/2008 - 14:46 von bpetri | Report spam
Hallo NG,

Nachdem ich bisher keine Lösung gefunden habe, versuch ich es auf
diesem Weg und hoffe das mir jemand helfen kann.

Mein Problem ist folgendes: Aus einer VB6 Anwendung wird via COM
Schnittstelle einer VB.NET Programm (als Klassenbibliothek)
aufgerufen. Das funktioniert auch soweit einwandfrei. Wenn ich jedoch
das aufgerufene VB.NET Programm beende, wird ebenfalls die VB6
Anwendung beendet. Dies soll natürlich nicht so sein.

Der Code sieht hierbei wie folgt aus:

VB6 Code:

Private Sub Command1_Click()

Dim pl As New ListGen.ComWrapper
pl.main 1

End Sub


VB.NET Code (ComWrapper.vb):

[...]
Sub main(ByVal pGsNr As Integer)
Dim cfg As New Conf
cfg._AGCNR = pGsNr

Application.Run(New GuiMainscreen())
End Sub


Ich habe zwar zig Tutorials gefunden, wie der Aufruf funktioniert -
jedoch scheint das obige Problem nicht gerade hàufig aufzutreten. Im
VB.NET Code ist übrigends nirgends ein Application.Exit() oder
Ähnliches implementiert.

Vielleicht weiss jemand ja, wieso es zu diesem Verhalten kommt. Wàre
sehr dankbar für eine Idee.

Gruß,
Björn
 

Lesen sie die antworten

#1 Armin Zingler
10/01/2008 - 15:24 | Warnen spam
schrieb

Hallo NG,

Nachdem ich bisher keine Lösung gefunden habe, versuch ich es auf
diesem Weg und hoffe das mir jemand helfen kann.

Mein Problem ist folgendes: Aus einer VB6 Anwendung wird via COM
Schnittstelle einer VB.NET Programm (als Klassenbibliothek)
aufgerufen. Das funktioniert auch soweit einwandfrei. Wenn ich jedoch
das aufgerufene VB.NET Programm beende, wird ebenfalls die VB6
Anwendung beendet. Dies soll natürlich nicht so sein.

________

Verstehe ich nicht: "VB.NET Programm (als Klassenbibliothek)". Ist das
nun eine Exe (Programm) oder eine Dll (=Bibliothek)? Da du im VB.Net
Code eine Sub main hast, wird es wohl eine Exe sein, aber dann ist es
keine Klassenbibliothek und hat auch keine COM-Schnittstelle (so weit
ich weiß).


Armin

Ähnliche fragen