AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Braucht sharemem mit D11 immer noch die borlndmm.dll?
Thema durchsuchen
Ansicht
Themen-Optionen

Braucht sharemem mit D11 immer noch die borlndmm.dll?

Ein Thema von softtouch · begonnen am 11. Sep 2023 · letzter Beitrag vom 11. Sep 2023
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.350 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Braucht sharemem mit D11 immer noch die borlndmm.dll?

  Alt 11. Sep 2023, 22:33
Sharemem brauchst du ausschließlich dann, wenn ein Delphiprogramm eine Delphi-DLL lädt und dorthin zum Beispiel Delphi-Strings übergibt statt PAnsiChar, PWideChar oder WideString.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Braucht sharemem mit D11 immer noch die borlndmm.dll?

  Alt 11. Sep 2023, 23:04
Genauer dann, wenn man die Kontrolle von Speicher über DLL-Grenzen hinweg weiter gibt.

z.B. einen String in der EXE oder DLL erstellen, Diesen an die andere DLL übergibt (oder andersrum) und drüben dann etwas mit dem String macht, was dessen Verwaltung betrifft.
* verändern (nicht nur die Chars, sondern so, das auch der Speicher des Strings vergrößert/verkleinert/verschoben/freigegeben wird)
* neuen Text zuweisen
* oder die Variable leeren

Bei PChar's gibt man meistens nur einen Zeiger weiter, wo drüben der nur Inhalt (Chars) gelesen oder eventuell auch überschrieben werden, aber ohne dass der Speichermanager den String selbst bearbeiten muß.


Anders kann man das auch über LaufzeitPackages lösen, wo dann sogar die RTTI und Typen, Funktionen, globale Variablen usw. geshared werden.
-> hier kann man dann also zusätzlich auch noch Delphi-Objekte übergeben.


Bei übergebenen Interfaces, ist sogar selten nötig, da dort im Interface-Objekt Zeiger zu Verwaltungsfunktionen/Speichermanager/usw. des erstellenden Moduls drin hat, womit bei Änderung/Freigabe immer die richtige DLL/EXE/SpeicherManager die Arbeit übernehmen, egal wo das Interface gerade benutzt wird-




Außerdem helfen ShareMem, SimpleShareMem und Co. auch nur zwischen Delphi-DLL/EXE.
Oder zu anderen Systeme ala C++Builder oder fremde C++, welche ebenfalls die Schnittstelle des (Simple)ShareMem implementieren/benutzen "könnten".
(aber normal nutzt das nur Delphi untereinander ... und vielleicht noch FreePascal)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (11. Sep 2023 um 23:07 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 06:32 Uhr.
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