Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

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

  Alt 8. Jun 2024, 11:24
Objekte/Klassen dürften NIEMALS über DLL-Grenzen hinweg genutzt werden. (ohne Packages)

ohne ShareMem hat jeder seinen eigenen Speichermanager
* in einem Modul (EXE/DLL) reservierter Speicher kann nicht in einem anderen Modul verändert werden
* * die Reservierung des Speichers ... der Inhalt ist was Anderes
* * z.B. die Länge eines Strings ändern, bzw. den String einer anderen Variable/Parameter zuweisen (wenn es passieren kann, dass ein String dabei freigegeben wird)

ohne Packages hat jedes Modul seine eigene Deklaration von Typen und ihrer Methoden, sowie eine komplett eigene TypeInfo/RTTI
* selbst wenn man denkt es sei identisch, ist das NIEMALs sicher
* durch Optimierung kann der Kompiler/Linker optimieren und z.B. "ungenutzte" Felder in der Klasse "weglassen"
* ist das in beiden Modulen unterschiedlich, dann denkst das eine Modul an Adresse+5 wäre das Feld, aber das Andere Modul denkt dort wäre etwas Anderes


Bei Nutzung von Interfaces sieht das Anders aus.
* hier muß man zwar drauf achten, dass alle Seiten die selbe gleiche Definition besitzen,
* aber intern wird jeder Methodenaufruf an das Modul weitergeleitet, wo das Interface/Object erstellt wurde (Create)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 8. Jun 2024 um 11:26 Uhr)
  Mit Zitat antworten Zitat