Autor Beitrag
dark-destination1988
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178
Erhaltene Danke: 21



BeitragVerfasst: Fr 29.04.11 11:39 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 97
Erhaltene Danke: 11


VS 2010, C#, AHK
BeitragVerfasst: 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: www.codeguru.com/csh...om/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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178
Erhaltene Danke: 21



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178
Erhaltene Danke: 21



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178
Erhaltene Danke: 21



BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 178
Erhaltene Danke: 21



BeitragVerfasst: 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?