![]() |
Delphi7 mit .Net Dll per SideBySide(SxS) mit Manifest
Hallo Zusammen,
eine Sache erstmal vorweg: Ich bin nicht nur Anfänger, was Delphi betrifft, ich habe wirklich KEINE Ahnung von Delphi ;-) Ich versuche auch "nur" ein kleines Testprogramm zu basteln, welches dann später von andern richitg Umgesetzt wird. Nun aber zum Thema: Ich habe eine DLL in VB.net geschrieben (geht nur in VB.Net, der FastReport in der .Net-Variante soll benutzt werden) Diese DLL macht also nicht viel mehr als mit der funktion START den FastReport zu starten. Diese .Net DLL soll jetzt in Delphi 7 eingebunden werden. Funktioniert auch wunderbar, solange die DLL mit Regasm.exe registiert ist Diese Registrierung kann ich aber aus bestimmten Gründen nicht vorraussetzen. Darum habe ich mich in das Thema RegFree Com eingelesen. Also habe ich 2 Manifest-Dateien erstellt (die Dll.Manifest und die exe.Manifest) Wenn ich über diesen Weg ein Testprogramm in VB6 schreibe, funktioniert das alles wunderbar ohne Registrierung. Mein VB6-Code:
Code:
Wie kann ich etwas vergleichbares in Delphi schaffen? Wie gesagt, ich hab absolut keine Ahnung, mir fehlen bei Delphi sämtliche Grundlagen. Ich habe aber, glaube ich, mittlerweile jede Seite durch, auf der irgendwas zu dem Thema steht, aber nichts hilft mir bei meinem Simplen Testprogramm.
Private Sub Command2_Click()
Set ActCtx = CreateObject("Microsoft.Windows.ActCtx") ActCtx.manifest = "c:\ViewerDLL.manifest" Dim Obj As Object Set Obj = ActCtx.CreateObject("ViewerDLL.ReportViewer") Obj.Start ("") End Sub Habt Ihr da eine Idee? Wenn noch mehr Infos fehlen, einfach bescheid geben, ich werde dann versuchen nachzubessern. Danke euch schonmal im Vorraus |
AW: Delphi7 mit .Net Dll per SideBySide(SxS) mit Manifest
Zitat:
Das ganze Delphi / .NET Interop-Zeug ist zwar, wenn man das einmal geschnackelt hat, keine Rocket Science, aber doch immer sehr nervig, hakelig und nicht gerade bequem. Ich würde mir mal ![]() Und zwar - das ist das geniale daran, sogar sehr einfach direkt innerhalb Deiner Anwendung auf einem Deiner Forms anzeigen - ohne das User großartig einen Unterschied merkt. Klar, das ist eine kommerzielle Lösung, aber wenn Du Dir die Trial mal anschaust und Du das Ding in 20-30 Minuten fertig hast, dann wirst Du merken das es das echt Wert ist. |
AW: Delphi7 mit .Net Dll per SideBySide(SxS) mit Manifest
Zitat:
Bezgl. Hydra: Ich glaube kaum, dass ich bei uns eine Lösung über Hydra durchsetzen könnte, zumal dieses dann nur für dieses eine einzige Projekt gebraucht würde. Zumal wenn das das ich vorhabe, so wie du sagst, grundsätzlich funktioniert. Den Anleitungen im Netz kann man ja wenigstens entnehmen, dass es der ein oder andere schon mal auf diesem Weg zum Laufen gebracht hat. Und außerdem dachte ich immer (Zitat befreundeter Programmierer:) Delphi kann alles. Nunja, bei diesem Problem kann ER mir aber leider auch nicht helfen :evil: Vielleicht landet ja hier nochmal jemand, der das selbe Probiert hat. Schließlich ist der VB6-Code so simpel, da müsste es doch auch irgendeine Lösung für Delphi geben. LG |
AW: Delphi7 mit .Net Dll per SideBySide(SxS) mit Manifest
Wenn das mit COM und registrierter Dll schonmal funktioniert, dann ist das nötige Zeug auf .NET Seite also ComVisible und hat auch seine Guids etc. pp?
Bist Du der Anleitung hier gefolgt? ![]() Ansonsten wäre eine andere Idee COM komplett aussen vor zu lassen und unmanaged Exports von Robert zu verwenden: ![]() |
AW: Delphi7 mit .Net Dll per SideBySide(SxS) mit Manifest
Sorry erstmal,
die Urlaubsstimmung macht sich so langsam breit, komm erst jetzt wieder dazu. Zitat:
Und da oben stehender VB6 Code problemlos ohne registrieren läuft, denke ich ja, dass von der DLL-Seite alles passen sollte. Zitat:
Mein Problem ist ja, dass ich es erstmal mit VB6 zum laufen bekommen wollte, weil ich nichts von Delphi verstehe und in der Anleitung, die du gepostet hast, keinerlei Delphi-Code drin ist (und ich noch nichtmal bei Hello World so sicher wäre, wie der Code ist :roll: ). Von daher hab ich gedacht, mach ichs erstmal mit VB6 und schaue obs da geht und das hat geklappt. Die in der Anleitung angesprochene Ressource einbinden habe ich auch noch nicht gemacht (habs zwar Probiert, hat aber nichts geändert). Mein Problem ist ja, dass ich noch nicht mal richtig weis, wie dann der Aufruf passieren muss und was ich unter "uses" schreiben muss, wenn die DLL nicht registriert ist (Delphi kann ja ohne einen richtigen Import die Klasse gar nicht kennen). Bei VB6 hab ich das Problem nicht, da definiere ich ein Objekt und speise dann da mein Manifest ein. Läuft alles per Laufzeit, so dass beim Kompillieren die Klasse noch nicht bekannt sein muss. Liebe Grüße aus dem heißen Bayern.... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz