Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Strings in Delphi in DLL

  Alt 21. Okt 2010, 11:44
PS: ein Delphi-String ist auch nur ein aufgemotztes dynamisches Array ... also sollte man, bei Übergabe von dynamischen Arrays ebenfalls ShareMem einsetzen.

ShareMem sollte immer eingesetzt werden, wenn Speicher, der über den Delphi-Speichermanager läuft, über Modulgrenzen hinweg verwendet/verändert wird.

Bei diesen delphieigenen Typen, welche automatisch verwaltet werden, kann man nie genau sagen wann ein verändernder Zugriff auftreten kann, also sollte man immer ShareMem einsetzen.



Und das mit dem PChar<>Record versteh ich auch nicht,
außerdem fehlt auch noch der Zugriff auf Seite der EXE, welchen du uns vorenthältst.



Wenn Strings/DynArray nur innerhalb einer EXE oder DLL verwendet werden, aber nicht über die Modulgrenzen hinweg genutzt werden (z.B. nicht als Parameter übergeben),
dann muß ShareMem nicht verwendet werden.

ShareMem ist halt nötig, wenn Beide Resourcen (in diesem Fall den Speichermanager) gemeinsam verwenden wollen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (21. Okt 2010 um 11:48 Uhr)
  Mit Zitat antworten Zitat