Hallo,
ich habe auf meinem Rechner eine C# Dll mit SharpDevelop geschrieben. Diese habe ich anschließend mit ScharpDevelop als ComVisible registrieren lassen und nun nutze ich die Dll in einer von mir geschriebenen Komponente in Delphi. Dies funktioniert auch einwandfrei, sowohl zur Entwicklungszeit als auch zur Laufzeit.
Installiere ich die Komponente auf einem anderen Rechner in Delphi, funktioniet dies auch. Aber da ich auf diesem Rechner kein SharpDevelop installiert habe, muss ich die Registrierung der dll manuell vornehmen. Also registriere ich meine my.dll mit regasm.exe (.net 3.5 ist auf beiden Rechnern installiert). Dies funktioniert auch einwandfrei. Ich sehe anschließend die DLL unter Delphi und kann sie als Typbibliothek importieren und mir aus der my.tlb eine my_tlb.pas Datei erzeugen lassen.
Rufe ich aber eine Funktion der Dll einer Delphi-Anwendung auf, so kommt immer die Fehlermeldung: "Das System kann die angegebene Datei nicht finden". Dieser Fehler tritt nicht mehr auf, wenn ich die my.dll in mein Verzeichnis verschiebe, in dem die Anwendung liegt. So weit so gut, aber leider tritt der Fehler immer noch zur Entwicklungszeit auf. Sprich, ich rufe eine Funktion der my.dll auf, sobald an ich an den Properties meiner Komponente etwas ändere. Und obwohl die my.dll im Verzeichnis der Komponente als auch im Verzeichnis der Anwendung liegt, kommt die Fehlermeldung. Aber eben nur zur Entwicklungszeit.
Hat jemand dafür ne Erklärung, bzw. könnte mir weiterhelfen bitte?
Vielen Dank.