Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Mit Laufzeitpackages compilieren


bockwurst - Do 29.03.07 16:26
Titel: Mit Laufzeitpackages compilieren
Hallo zusammen,

Kann mir einer sagen, was der Haken "mit Laufzeitpackages compilieren" bedeutet?
(unter Projekt/ Projektoptionen/ Packages)

Ist es Sinnvoll dieser Haken zu setzten. Gibt es Probleme, wenn ich ihn nicht setzte?

Habe ein Projekt auf Laptop und auf "richtigen Computer". Bei dem einen muß ich den Haken setzten und bei dem anderen darf ich ihn nicht setzten. Beide exe laufen nachher.

Danke

Andreas Orban


mkinzler - Do 29.03.07 16:29

Wenn du ihn setzt werden externe Bibliotheken (Bpls) nicht mehr in die Exe verlinkt und du mußt sie mitliefern.


bockwurst - Do 29.03.07 16:57

Was sind externe Bibliotheken?

Ganz normale VCL's: sind das externe Bibliotheken?
Ist LL(List&label) eine externe Bibliothekt?

Gruß Andreas


mkinzler - Do 29.03.07 16:58

Ich hatte mich etwas undeutlich ausgedrückt, mit extern meinte ich alles was nicht in deinem Code steht, also auch die RTL, VCL usw.


bockwurst - Fr 30.03.07 08:55

Vielen Dank mkinzler,

aber so richtig habe ich es immer noch nicht verstanden. ?!

Ist es so, daß wenn ich ein Programm weiter geben will, diesen Haken "Laufzeitpackages einbinden" immer anhaken muß.

Auf meinem Laptop kommt ein ein Fehler, wenn ich ihn anhake. Kann mir dies einer noch bitte genauer erklären, wäre wirklich sehr dankbar, weil ich jetzt nur mehr verirrt bin.

Andreas


alias5000 - Fr 30.03.07 09:52

Also wenn du das Programm weitergeben willst, machst du den Haken generell raus.
Laufzeitpackages sind grob gesagt DLLs, die eine objektorientierte Erweiterung haben. Du kannst den ganzen Code der VCL und RTL entweder in deine EXE kompilieren lassen, oder diese in die Laufzeitpackages (Erweiterung *.bpl).
Der Vorteil bei Laufzeitpackages liegt zunächst darin, dass ein Satz Laufzeitpackages auf einem Rechner dann für die dann etwas kleineren EXE- Dateien genügt. Ohne Laufzeitpackages werden in die EXE alle benötigten Teile der VCL und RTL mit reinkompiliert -> das Programm wird größer.

Eigentlich würde ich sagen, dass man ohne Laufzeitpackages kompilieren sollte, wenn man in seinem Code das Feature der Packages nicht selbst benutzt (das wäre wieder ein anderes Gebiet, worauf du dich nicht zu bewegen scheinst). Das Verteilen der Anwendung ist dann i.d.R. etwas einfacher

Gruß
alias5000


bockwurst - Fr 30.03.07 10:37

Vielen Dank !!!!!!!

jetzt habe ich es verstanden.

gruß Andreas Orban


HelgeLange - Fr 30.03.07 15:38

Es gibt aber auch eine Sache zu bedenken, wenn man ohne Laufzeitpackages kompiliert, wenn man mit DLLs arbeitet : globale Variablen sind unterschiedlich. Zum Bsp. Application (aus forms.pas). Lässt du das Häkchen weg, hat die Exe und jede DLL einen eigene Application-Variable.

Ausserdem kannst Du in der Zeile unter dem H¨kchen ja bestimmen, welche Laufzeitpackages du dynamisch linken willst. Das hat ja auch den Vorteil, das mit jedem Modul, welches Deine Anwenung lädt, der Code der Bibliothek trotzdem nur einmal geladen wird und für alle geshared zur Verfügung gestellt (sofern diese das häkchen auch haben)