AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Units in bpl auslagern und als Package in Exe/Dll einbinden
Thema durchsuchen
Ansicht
Themen-Optionen

Units in bpl auslagern und als Package in Exe/Dll einbinden

Ein Thema von hschmid67 · begonnen am 6. Jun 2024 · letzter Beitrag vom 8. Jun 2024
Antwort Antwort
TomyN

Registriert seit: 8. Nov 2006
Ort: Bayreuth
289 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: Units in bpl auslagern und als Package in Exe/Dll einbinden

  Alt 7. Jun 2024, 09:11
Und Du müsstest extrem viel auf die Kompatibilität achten oder halt immer irgendwas nachladen oder mit in den Installer packen, so wie es immer noch Programme gibt, die irgendeine bestimmter C-- Runtimeversion aus 2013 o.ä. verlangen und installieren.....
Thomas Neumann
Meine Projekte
www.satlive.audio
www.levelcheck.de
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock
Online

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.821 Beiträge
 
Delphi 12 Athens
 
#2

AW: Units in bpl auslagern und als Package in Exe/Dll einbinden

  Alt 7. Jun 2024, 10:04
Noch anders formuliert: Wenn Du nicht gerade auf Disketten auslieferst, hast Du durch eine Auslagerung in BPL oder DLL nichts gewonnen außer Bauchschmerzen. Und selbst dann, konnte man schon vor 30 Jahren Zip auf mehrere Disketten aufteilen lassen (disk spanning seit V2.0 von 1993 des ZIP Formats).
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
johndoe049

Registriert seit: 22. Okt 2006
176 Beiträge
 
#3

AW: Units in bpl auslagern und als Package in Exe/Dll einbinden

  Alt 7. Jun 2024, 12:01
Also wenn die Größe für Updates der einzige Grund ist. Dem kann geholfen werden.

In einigen Gebieten (Inland/Ausland) gibt es langsame Internetverbindung. Daher ist das ein Thema für uns.

Lösung: Binäre Delta Updates. D.h. eine Komprimierte Übertragung von Änderungen.

Etwas teuer aber gut wäre z.B. RTPatch von Pocketsoft.

Patch Management kosten zwar etwas, man muss aber nichts an der Entwicklung ändern, nur um Platz für Updates einzusparen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.557 Beiträge
 
Delphi 12 Athens
 
#4

AW: Units in bpl auslagern und als Package in Exe/Dll einbinden

  Alt 7. Jun 2024, 12:22
Und vergiss nicht, dass du dann auch schnell noch weitere Packages mitgeben mußt.
z.B. RTL, VCL uvm.

in der RTL liegen z.B. die System.pas (Speichermanagement/Strings), SysUtils usw.

C:\Program Files (x86)\Embarcadero\Studio\22.0\Redist\win32
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch
Online

Registriert seit: 11. Aug 2012
Ort: Essen
1.734 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Units in bpl auslagern und als Package in Exe/Dll einbinden

  Alt 7. Jun 2024, 15:51
Nur, um sicherzustellen, dass ich das richtig verstehe: Es geht um ein relativ einfaches Rahmenprogramm, welches Funktionalität mittels verschiedener Plugins als DLL anbietet? Und dieses System existiert so bereits?

Solange da die DLLs sich nicht gegenseitig aufrufen sondern nur ein vorgegebenes (prozedurales?) Interface für das Hauptprogramm zur Verfügung stellen, kann Dein Vorhaben durchaus sinnvoll sein, denn es spart für jede DLL alles das, was in den Standard-Packages zur Verfügung steht. Auch das Hauptprogramm kann dadurch kleiner werden.

Aber ich würde es bei den Standard-Packages für RTL und VCL, plus evtl. von wenigen Fremdkomponenten belassen. Sobald Du anfängst, eigenen Code in Packages zu verlagern, wird es komplex und lohnt in der Regel auch nicht.

Wichtig ist eine feste, dokumentierte Schnittstelle und eine Versionierung der DLLs, aber das sollte es für ein solches Programm bereits sowieso geben, unabhängig davon, ob Packages verwendet werden oder nicht.
Thomas Mueller
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.557 Beiträge
 
Delphi 12 Athens
 
#6

AW: Units in bpl auslagern und als Package in Exe/Dll einbinden

  Alt 7. Jun 2024, 18:05
Nja, grundsätzlich spricht nichts dagegen, Packages anstatt DLLs zu verwenden.
Dynamisch laden lassen auch sie sich

MSDN-Library durchsuchenLoadLibrary
MSDN-Library durchsuchenLoadLibraryEx
Delphi-Referenz durchsuchenSafeLoadLibrary
MSDN-Library durchsuchenFreeLibrary

Delphi-Referenz durchsuchenLoadPackage
Delphi-Referenz durchsuchenUnloadPackage

und zusätzlich hat man den Vorteil erstmal ohne ShareMem rumzuspielen und auch stärker gemeinsamten Code, Klassen, usw. verwenden zu können.
OK, "DLLs" aus fremden Programmiersprachen fallen dann außen vor.
Und bei RuntimePackages muß man unbedingt aufpassen, dass die EXE, DLLs und BPLs in der selben Delphi-Version, Unterversion und selten sogar mit dem selben Patch kompiliert sein müssen.

Hier bietet es sich inzwischen an, mit dem automatischen Suffix zu arbeiten. (LibSuffix AUTO, siehe Projektoptionen > Beschreibung)
http://docwiki.embarcadero.com/RADSt...jects_(Delphi)


Alternativ kann man natürlich auch klassisch mit COM-Interfaces arbeiten,
sowie ganz einfache "Funktionen" in DLLs aufrufen,
oder Dergleichen.



Ja, praktisch ist es also auch möglich Erweiterungen in der Delphi-IDE zu nutzen, ohne dass beim (de)installieren die IDE beendet und neu gestartet werden muß.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 7. Jun 2024 um 18:14 Uhr)
  Mit Zitat antworten Zitat
Commander Tom

Registriert seit: 9. Dez 2005
Ort: Ettlingen
66 Beiträge
 
Delphi 12 Athens
 
#7

AW: Units in bpl auslagern und als Package in Exe/Dll einbinden

  Alt 7. Jun 2024, 21:56
TMSSoftware bietet dazu auch etwas an: https://www.tmssoftware.com/site/tms...framework.asp#

Ob das allerdings passend sein könnte, kann ich nicht beurteilen.
Commander Tom
  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 14:45 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