Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Stringübergabe an DLL

  Alt 1. Dez 2017, 10:50
WideString

Im Gegensatz zu String/AnsiString/UnicodeString, welche vom Delphi-Memory-Manager verwaltet werden, wird er von der OleAuth32.dll verwaltet.
Intern wird Delphi-Referenz durchsuchenSysAllocStringLen, Delphi-Referenz durchsuchenSysReAllocStringLen, Delphi-Referenz durchsuchenSysFreeString und Delphi-Referenz durchsuchenSysStringLen verwendet, welches auch andere Programmiersprachen verstehen.


Also WideString auf beiden Seiten geht.
Genauso wie Delphi-Strings auf beiden Seiten gehen, wenn beide den selben Speichermanager nutzen (Shared Memory).
Bei Delphi muß nur aufgepasst werden, dass sich das Datenformat der Kontrollstruktur im Jahre 2009 geändert hat. (also Delphi 7 mit XE geht nicht)

Dann der ShortString, aber diesen Pascal/Delphi1-String will man nicht verwenden.
Oder die bekannten Char-Arrays, aber natürlich nur AnsiChar oder WideChar, damit das Datenformat nicht ändern kann und immer fest definiert ist.
Und dementsprechend auch PAnsiChar und PWideChar auf einseitig verwaltete Speicherbereiche.
$2B or not $2B
  Mit Zitat antworten Zitat