Hallo,
ich möchte unter VB.net eine DLL erstellen und diese dann unter VB 6.0 nutzen. Schon den ganzen Tag versuche ich einen kleinen Test zum laufen zu bekommen, aber ich kriege es selbst nicht hin und auch Google konnte mir bisher nicht helfen.
Unter folgender Konstellation herrscht bei mir:
Ein Rechner mit Windows 7 (64bit) und Visual Studio 2008. (hier erstelle ich die DLL)
Ein anderer Rechner mit Windows XP SP3 (32bit) und Visual Basic 6. (hier versuche ich sie zu benutzen)
Folgendes habe ich bisher gemacht:
- im VB08 ein neues Projekt mit dem Typ "Klassenbibliothek" angelegt
- System.Runtime.InteropServices importiert
- die COM-Sichtbarkeit der Klasse auf true gesetzt
- eine neue Sub erstellt und diese public gemacht
- die COM-Sichtbarkeit der Funktion auf true gesetzt
- unter Projekt->Eigenschaften->Anwendung->Assemblyinformationen die COM-Sichtbarkeit angekreuzt
- danach die DLL als Admin erstellt, damit auch die *.tlb erstellt wird
- unter VB6 wollte ich mittels declare .. lib ... die Funktion definieren
- ich habe auch die .tbl unter Projekt->Verweise eingebunden
Aber es funktioniert nicht:
- beim ausführen der Exe kommt der Fehler "DLL-Einspungpunkt * in *.dll nicht gefunden" (Laufzeitfehler 453)
- wenn ich versuche die DLL direkt in VB6 als Verweis einzutragen wird mir das nur mit "Verweis auf angegebenen Datei kann nicht hinzugefügt werden." quitiert
- öffne ich die DLL mit dem Dependency Walker, so sind keine Einstiegspunkte vorhanden
- das öffnen der TBL schlägt komplett fehl ("No DOS or PE signature found. This file is not a valid 32-bit or 64-bit Windows module")
Folgendes habe ich zusätzlich noch probiert:
- ich habe durch Google etliche Beispielprojekte gefunden, aber keines davon hat bei mir funktioniert
- ich habe noch mit "TlbExp", "Gacutil" und "RegASM" experimentiert (aber auch ohne Erfolg)
Die Datei clsTestDLL.vb:
Die Datei frmMain.vb:
Ich habe die kompletten Projekt noch als Anhang hinzugefügt.
Ich würde mich freuen wenn mir jemand helfen könnte.
mit freundlichen Grüßen
Alex
ich möchte unter VB.net eine DLL erstellen und diese dann unter VB 6.0 nutzen. Schon den ganzen Tag versuche ich einen kleinen Test zum laufen zu bekommen, aber ich kriege es selbst nicht hin und auch Google konnte mir bisher nicht helfen.
Unter folgender Konstellation herrscht bei mir:
Ein Rechner mit Windows 7 (64bit) und Visual Studio 2008. (hier erstelle ich die DLL)
Ein anderer Rechner mit Windows XP SP3 (32bit) und Visual Basic 6. (hier versuche ich sie zu benutzen)
Folgendes habe ich bisher gemacht:
- im VB08 ein neues Projekt mit dem Typ "Klassenbibliothek" angelegt
- System.Runtime.InteropServices importiert
- die COM-Sichtbarkeit der Klasse auf true gesetzt
- eine neue Sub erstellt und diese public gemacht
- die COM-Sichtbarkeit der Funktion auf true gesetzt
- unter Projekt->Eigenschaften->Anwendung->Assemblyinformationen die COM-Sichtbarkeit angekreuzt
- danach die DLL als Admin erstellt, damit auch die *.tlb erstellt wird
- unter VB6 wollte ich mittels declare .. lib ... die Funktion definieren
- ich habe auch die .tbl unter Projekt->Verweise eingebunden
Aber es funktioniert nicht:
- beim ausführen der Exe kommt der Fehler "DLL-Einspungpunkt * in *.dll nicht gefunden" (Laufzeitfehler 453)
- wenn ich versuche die DLL direkt in VB6 als Verweis einzutragen wird mir das nur mit "Verweis auf angegebenen Datei kann nicht hinzugefügt werden." quitiert
- öffne ich die DLL mit dem Dependency Walker, so sind keine Einstiegspunkte vorhanden
- das öffnen der TBL schlägt komplett fehl ("No DOS or PE signature found. This file is not a valid 32-bit or 64-bit Windows module")
Folgendes habe ich zusätzlich noch probiert:
- ich habe durch Google etliche Beispielprojekte gefunden, aber keines davon hat bei mir funktioniert
- ich habe noch mit "TlbExp", "Gacutil" und "RegASM" experimentiert (aber auch ohne Erfolg)
Die Datei clsTestDLL.vb:
Die Datei frmMain.vb:
Ich habe die kompletten Projekt noch als Anhang hinzugefügt.
Ich würde mich freuen wenn mir jemand helfen könnte.
mit freundlichen Grüßen
Alex