Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: String mit .dll ohne borlndmm.dll

  Alt 31. Okt 2023, 16:04
Die borlndmm.dll wird sowieso schon seit Jahrzehnten nicht mehr benötigt.
Delphi-Referenz durchsuchenSimpleShareMem anstatt Delphi-Referenz durchsuchenShareMem.
https://docwiki.embarcadero.com/RADS...g_von_Speicher
DLLs oder EXE ... der, welcher im gemeinsamen Prozess zuerst da ist, dessen Speichermanager wird verwendet.
(bzw. es wird geguckt ob schon wer Anderes da ist, also ob jeweils der Fremde oder der eigene Manager genutzt wird)

WideString (BSTR des OleAut) und ShortString (ein Record) können problemlos geshared werden, da sie nicht den Speichermanager des Delphi benutzen.

PAnsiChar als Parameter (zum Lesen) ist kein Problem.
Als Result muß man dafür sorgen, dass der Speicher (also z.B. der Quell-String) auch nach Funktionsende noch erhalten bleibt, also außerhalb der Funktion gespeichert.

Probematisch ist ein PChar zum Schreiben, denn da muß auf der anderen Seite ausreichend Speicher bereits reserviert sein, bzw. es gibt eine Funktion zum Reservieren.
$2B or not $2B

Geändert von himitsu (31. Okt 2023 um 16:23 Uhr)
  Mit Zitat antworten Zitat