AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DLL wegen RTTI zu einem Package umbauen

Ein Thema von QuickAndDirty · begonnen am 28. Aug 2006 · letzter Beitrag vom 12. Okt 2014
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#1

DLL wegen RTTI zu einem Package umbauen

  Alt 28. Aug 2006, 09:27
Hallo,
Ich muss ein DLL (wegen der RTTI)in ein Package umbauen und habe verschiedene Fragen.

Ist ein Package zur laufzeit ladbar?
Nach dem was ich über LoadPackage gelesen hab ist dem wohl so.
Aber wie lautet dann das Äquivalent zu getProcAddress?

Überhaupt was muss ich jetzt machen die DLL Methoden in eine
Unit Packen und diese Unit in ein Package stecken?

Kann ich ein Package getrennt von der Anwendung weitergeben?

Eigentlich brauche ich nur zu wissen wie ich das in ein Runtime-Package packe.

Hilfe!!
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

Re: DLL wegen RTTI zu einem Package umbauen

  Alt 28. Aug 2006, 10:05
Ein Package *ist* eine DLL, aber eine mit Metadaten, die die Delphi RTL verwerten kann.
"GetProcAddress" funktioniert dort also auch, genau wie die exports clause.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#3

Re: DLL wegen RTTI zu einem Package umbauen

  Alt 28. Aug 2006, 11:14
Sähe das so aus
Delphi-Quellcode:
Package bla;

uses dbtables, classes, ect;

Fn1(a,v:Tdatentyp):TBla;
Begin
  Result := Rechnung1;
end;

Fn2(a,v:Tdatentyp):TBla;
Begin
  Result := Rechnung2;
end;

Fn3(a,v:Tdatentyp):TBla;
Begin
  Result := Rechnung3;
end;

exports
  Fn1,Fn2,Fn3;

Begin

end;
Und läst es sich dann auch mit
GetModuleHandle bzw. LoadLibrary zur Laufzeit laden?

Sorry, aber wenn ich hier im D7 versuche ein Package zu machen
ists einfach nur eine Include und Contains Liste. Wie mache
ich Runtime Packages?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: DLL wegen RTTI zu einem Package umbauen

  Alt 28. Aug 2006, 11:24
Zitat:
Sorry, aber wenn ich hier im D7 versuche ein Package zu machen
ists einfach nur eine Include und Contains Liste. Wie mache
ich Runtime Packages?
In dem du das Package compilierst.
Markus Kinzler
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#5

Re: DLL wegen RTTI zu einem Package umbauen

  Alt 28. Aug 2006, 11:30
mkMinzler, in meinem Package ist ja keine Function enthalten
die sich exportieren ließe. ich kann da nur units und weiter packages
hinzufügen. was soll ich damit schon anfangen?

kann mich mal bitte jemand mit nem Beipiel von einem Package bewerfen
das eine Funktion exportiert.
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

Re: DLL wegen RTTI zu einem Package umbauen

  Alt 28. Aug 2006, 11:34
Zitat von QuickAndDirty:
was soll ich damit schon anfangen?
Na eine Unit hinzufügen.

Zitat:
kann mich mal bitte jemand mit nem Beipiel von einem Package bewerfen
das eine Funktion exportiert.
Packages exportieren ganze Units und nicht nur einzelene Funktionen. Der Export einer Unit wird über das hinzufügen der Unit in die contains-Klausel des Packages erzieht. Der Import geht dann über die einfache Nutzung der Unit in der EXE-Datei (oder anderen Packages). Dafür musst du aber das Package bei der EXE unter "Projektoptionen/Packages - Mit Runtimepackages kompilieren" hinzufügen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: DLL wegen RTTI zu einem Package umbauen

  Alt 28. Aug 2006, 11:36
Zitat:
Der Import geht dann über die einfache Nutzung der Unit in der EXE-Datei (oder anderen Packages). Dafür musst du aber das Package bei der EXE unter "Projektoptionen/Packages - Mit Runtimepackages kompilieren" hinzufügen.
Oder durch Laden der Libraray wie bei einer Dll.
Markus Kinzler
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

Re: DLL wegen RTTI zu einem Package umbauen

  Alt 28. Aug 2006, 11:44
Zitat von mkinzler:
Oder durch Laden der Libraray wie bei einer Dll.
Dann brauchst du aber ein weiteres Package (mit Units), über das du dann die Kommunikation regelst, außer du nutzt das BPL wie eine DLL (wobei die exports-Anweisung in eine Unit verlager werden muss).
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#9

Re: DLL wegen RTTI zu einem Package umbauen

  Alt 28. Aug 2006, 12:02
Zitat:
Oder durch Laden der Libraray wie bei einer Dll.
Genau so muss ich es haben.
Nur wie mache ich dem Package klar das es bestimmte Funktionen veröffentlichen soll?

Soll ich meine DLL Funktionen in eine Unit packen. Die Köpfe ins Interface und fertig?
Oder noch eienen Exports teil dazu?

Sorry ich weiß das sich die fragen selten blöd anhören aber ich habe bisher immer nur Packages
für Komponenten gebastelt die direkt mit in die Anwendung kompiliert wurden.
Naja und jetzt bin ich dabei alle BDE Bezüge aus unserer Anwendung zu entfernen. Dafür habe ich mir
eigene TDatasets geschrieben die die Datenbank Virtualisieren. So bracht man quasi nur ein neues DLL
Schreiben um die Datebank zu wechseln, das ging auch gut. Doch leider ließ sich das RTTI Probelm
irgendwann nicht mehr umgehen(sonst half immer in temporäres objekt kopieren).

Und jetzt steh ich da mit ner DLL (bestimmt über Hundert Funktionen) auf der einen Seite und fertigen Wraperklassen
auf der anderen Seite. Und hätte eigentlich ein Package gebraucht.

Zitat:
außer du nutzt das BPL wie eine DLL (wobei die exports-Anweisung in eine Unit verlager werden muss).
Gehört Exports bei Packages in die Unit mit den Funktionen? In den Interface oder implemantation Teil?
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#10

Re: DLL wegen RTTI zu einem Package umbauen

  Alt 28. Aug 2006, 12:07
Zitat von QuickAndDirty:
Nur wie mache ich dem Package klar das es bestimmte Funktionen veröffentlichen soll?
Ich zitiere mich mal selbst (wie so des öfteren)
Zitat:
wobei die exports-Anweisung in eine Unit verlager werden muss
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 11:10 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