Entwickler-Ecke
WPF / Silverlight - WPF Formular über VB6 Programm aufrufen?
dark-destination1988 - Fr 29.04.11 11:39
Titel: WPF Formular über VB6 Programm aufrufen?
Ich habe eine alte Anwendung.
Innerhalb dieser möchte ich ein WPF-Formular aufrufen, welchem ich Variablen (zwei Integer) mitgebe. Ist dies prinzipiell möglich und wenn ja wie?
IsNull - Fr 29.04.11 14:30
Ja das ist möglich - ich habe auch diverse böse alte VB6 Programme mit .NET erweitert. An WPF sollte sich das Umfeld auch nicht stören, solange es in eigenen Fenster ablaufen kann.
Dazu erstellst du eine .NET Library, und machst diese Library COM sichtbar.
Google bringt da einiges, z.B. das hier:
http://www.codeguru.com/csharp/csharp/cs_misc/com/article.php/c6747
Dann kannst du die .NET Lib mit regasm für COM registrieren, in VB unter Referenzen kannst du es dann einbinden und die exportieren Klassen nutzen.
so far
dark-destination1988 - Mo 02.05.11 06:54
also ich bin jetzt soweit das ich die Bibliotheken habe. dann habe ich im Projekteinstellungen unter Erstellen "Für Com-Interop registrieren" gewählt. Die dabei enstandene tlb Datei habe ich unter "Verweise" im VB Projekt hinzugefügt. Ich weiss jetzt allerdings nicht wie ich auf eine Klasse zugreifen kann. (das heißt eine Instanz zu erstellen) Ich bekomme den Fehler "Benutzerdefinierter Typ nicht definiert", wenn ich das so mache wie in dem von dir gezeigten Link!
EDIT:
Also ich habe in meiner Klassenbibliothek mehrere Klassen und Interfaces.
Wenn ich nun auf KlasseA zugreifen will, wie definiere ich das? Nehme ich den Namespace und die Klasse A
Zum Beispiel?
Public KlasseAInstanz As NamespaceKlasseA.KlasseA
Weil ich weiss nicht so richtig, ob ich die DLL noch nicht richtig gebuildet habe oder ob ein Fehler in der Implementierung besteht.
Ich habe die Bibliothek erstellt in Windows 7 Visual Studio 2010. In meiner virtuellen Maschine will cih die Bibliothek im vb 6 testen.
dark-destination1988 - Mo 02.05.11 11:52
also nochmal ich
habe das mit dem interop registrieren wieder herausgenommen.
ich habe die dll erzeugt (unter assemblyinfo.cs [assembly: ComVisible(true)] eingestellt)
--> auf die vm maschine kopiert und versucht mit regasm zu registrieren bekomme allerdings die Meldung da es keine gültige .net-assembly wäre.
dark-destination1988 - Do 05.05.11 09:27
So UPDATE:
Also das erstellen hat funktioniert, das einbinden auch.
Zunächst habe ich aber in einer der Konfigdateien einen Connection-String zu einer Datenbank.
Muss ich diese Datei auch mit Regasm registrieren?
Ich bekomme nämlich folgenden fehler beim starten aus dem VB 6 Projekt:
"The specified named connection is either not found in the configuration, not intended to be used with the EntityClient provider, or not valid"
dark-destination1988 - Fr 06.05.11 06:44
Update:
Also Problem ist meiner meinung nach, das die DLL Die ich einbinde Settings enthält.
Diese kann ich aber nicht entfernen, da ich den ConnectionString zur Datenbank benötige.
Wie kann ich das umgehen ohne config-File oder gibt es eine Lösung?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!