![]() |
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. |
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. |
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?
|
AW: Fehler "rtl190.bpl nicht gefunden" auf anderen Systemen
Die müssen nur im Systempfad liegen.
|
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? |
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. |
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? |
AW: Fehler "rtl190.bpl nicht gefunden" auf anderen Systemen
Zitat:
Das kannst du auch leicht mit Everything oder dem Kommandozeilenbefehl where ermitteln. Zitat:
|
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 11: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