AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi7 mit .Net Dll per SideBySide(SxS) mit Manifest
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi7 mit .Net Dll per SideBySide(SxS) mit Manifest

Ein Thema von SlashMcKagen · begonnen am 25. Jul 2013 · letzter Beitrag vom 29. Jul 2013
Antwort Antwort
SlashMcKagen

Registriert seit: 25. Jul 2013
3 Beiträge
 
#1

Delphi7 mit .Net Dll per SideBySide(SxS) mit Manifest

  Alt 25. Jul 2013, 11:52
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:
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
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.
Habt Ihr da eine Idee?
Wenn noch mehr Infos fehlen, einfach bescheid geben, ich werde dann versuchen nachzubessern.

Danke euch schonmal im Vorraus
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#2

AW: Delphi7 mit .Net Dll per SideBySide(SxS) mit Manifest

  Alt 25. Jul 2013, 11:59
Ich habe eine DLL in VB.net geschrieben (geht nur in VB.Net, der FastReport in der .Net-Variante soll benutzt werden)
*Schauder* Natürlich geht es nicht nur in VB.Net. C# wäre eine durchaus gangbare Alternative

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 Hydra anschauen. Hier kannst Du aus Deiner .NET Assembly sehr einfach ein Plugin machen und das mit ein paar Zeilen in Deinen Delphi-Host laden.
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
SlashMcKagen

Registriert seit: 25. Jul 2013
3 Beiträge
 
#3

AW: Delphi7 mit .Net Dll per SideBySide(SxS) mit Manifest

  Alt 25. Jul 2013, 13:40
*Schauder* Natürlich geht es nicht nur in VB.Net. C# wäre eine durchaus gangbare Alternative
Ja, da hast du natürlich recht, ich drücke mich anders aus: Es geht nur in .net und für MICH auch nur in VB.Net

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
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
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.606 Beiträge
 
#4

AW: Delphi7 mit .Net Dll per SideBySide(SxS) mit Manifest

  Alt 25. Jul 2013, 14:14
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?
http://stackoverflow.com/questions/5...078671#5078671

Ansonsten wäre eine andere Idee COM komplett aussen vor zu lassen und unmanaged Exports von Robert zu verwenden: https://sites.google.com/site/robert...managedexports
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
SlashMcKagen

Registriert seit: 25. Jul 2013
3 Beiträge
 
#5

AW: Delphi7 mit .Net Dll per SideBySide(SxS) mit Manifest

  Alt 29. Jul 2013, 08:48
Sorry erstmal,
die Urlaubsstimmung macht sich so langsam breit, komm erst jetzt wieder dazu.

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?
Also ComVisible ist es und Guids sollten auch da sein (müssen ja auch in der Manifest-Datei angegeben werden)
Und da oben stehender VB6 Code problemlos ohne registrieren läuft, denke ich ja, dass von der DLL-Seite alles passen sollte.

Nicht so direkt. Ich habe viele Seiten gelesen und dann alles "zusammengeworfen" Eine einzelene Anleitung habe ich nicht Schritt für Schritt verfolgt.
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 ). 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....
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz