Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehler "rtl190.bpl nicht gefunden" auf anderen Systemen (https://www.delphipraxis.net/192128-fehler-rtl190-bpl-nicht-gefunden-auf-anderen-systemen.html)

Dennis07 23. Mär 2017 04:52

AW: Fehler "rtl190.bpl nicht gefunden" auf anderen Systemen
 
Naja, wenn ich das hächchen entferne dann kann ich ja nicht auf die Klassen in den Packages zugreifen, sofern ich diese nicht im Code verwende. Deshalb muss ich sie ja linken. Wenn ich den Haken entferne, dann kann ich mit der RTTI nicht auf meine Klasse zugreifen, weil der Linker die raus schmeißt.
Ich will aber, dass er sie drin lässt. Deshalb hab ich es ja ursprünglich aktiviert.

jaenicke 23. Mär 2017 05:18

AW: Fehler "rtl190.bpl nicht gefunden" auf anderen Systemen
 
Dann bleibt dir nur die BPLs mitzuliefern, wenn es mit Laufzeitpackages funktioniert.

Wir haben stattdessen die Klassen im Code registriert bzw. benutzt, damit sie einkompiliert werden. Da wir die meisten, soweit möglich, ohnehin im Pascal Script zur Verfügung stellen, sind die meisten aber ohnehin schon drin.

Dennis07 23. Mär 2017 05:40

AW: Fehler "rtl190.bpl nicht gefunden" auf anderen Systemen
 
Hmmm. Schade, dann muss ich das wohl machen. Die BPLs müssen dann ins Verzeichnis der EXE, oder kann ich diese auch dynamisch laden?

jaenicke 23. Mär 2017 06:29

AW: Fehler "rtl190.bpl nicht gefunden" auf anderen Systemen
 
Die müssen nur im Systempfad liegen.

Dennis07 23. Mär 2017 16:15

AW: Fehler "rtl190.bpl nicht gefunden" auf anderen Systemen
 
Also C:\Windows\System32\ ?
Und es reicht nicht wenn sie im Ordner der Anwendung liegen, so wie es bei DLLs der Fall ist?

nahpets 23. Mär 2017 18:10

AW: Fehler "rtl190.bpl nicht gefunden" auf anderen Systemen
 
Sie müssen im Systempfad liegen, das heißt irgendwo, wo das Programm sie finden kann.

Programmverzeichnis, System32 ... oder in irgendeinem Verzeichnis, das in der PATH-Variabel des Betriebssystem enthalten ist.
Das kann bei den Umgebungsvariabeln konfiguriert werden.

Sofern Du Deine Software mit 'nem Setupprogramm auslieferst, müsstest Du da sogar einen eigenen Pfad mit in die PATH-Variabel aufnehmen können. Damit hättest Du dann fast vollständige Freiheit, wo Du die Laufzeitpackages ablegst.

Dennis07 23. Mär 2017 23:56

AW: Fehler "rtl190.bpl nicht gefunden" auf anderen Systemen
 
Okay, danke! Noch zwei offene Fragen meinerseits:

Wo finde ich die fertigen BPL-Dateien?

Und angenommen ich will die Packages dynamisch laden (mit LoadPackage etc.), dann entferne ich alle packages aus den Einstellungen, entferne das Hakchen und lade sie beim Programmstart?

jaenicke 24. Mär 2017 03:16

AW: Fehler "rtl190.bpl nicht gefunden" auf anderen Systemen
 
Zitat:

Zitat von Dennis07 (Beitrag 1365417)
Wo finde ich die fertigen BPL-Dateien?

Im Bin Verzeichnis deiner Delphiinstallation.
Das kannst du auch leicht mit Everything oder dem Kommandozeilenbefehl where ermitteln.

Zitat:

Zitat von Dennis07 (Beitrag 1365417)
Und angenommen ich will die Packages dynamisch laden (mit LoadPackage etc.), dann entferne ich alle packages aus den Einstellungen, entferne das Hakchen und lade sie beim Programmstart?

Theoretisch ja, aber ob das funktioniert weiß ich nicht (ein Teil der Klassen existiert dann ja doppelt).

himitsu 24. Mär 2017 03:48

AW: Fehler "rtl190.bpl nicht gefunden" auf anderen Systemen
 
Bei BPLs wird alles einkompiliert (gelinkt), was im initialion steht.
und die Units sollten irgendwo wenigstens in einem USES (ich nehme die DPR, meine MainUnit oder eine gesonderte Import-PAS dafür) eingebunden sein.

Bei einer EXE kann der Kompiler dagegen den Code ganzer Units beim Linken rauswerfen, wenn er nirgendwo verwendet wird.
Also solltest du die gewünschten Klassen mindestens im Initialization der Unit aufrufen, aber ob der Compilier dann ungenutzte Felder/Methoden dieser Klassen entsorgt, das ist eine Andere Sache ... ich würde sie mindestens Published deklaieren, wenn sie via RTTI verwendet werden sollen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:44 Uhr.
Seite 2 von 2     12   

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