Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#11
  Alt 6. Jan 2003, 18:16
Zitat von Christian Seehase:
function GetComputerName(const AsName : string;const ApdwSize : PDWORD) : LongBool; stdcall; external 'kernel32.dllname 'GetComputerNameA';
Das geht nicht nur bei string=ShortString sondern auch bei string=AnsiString in die Hose. Denn beim ersten Zugriff auf AsName wird automatisch überprüft, ob die Länge nicht überschritten wurde, und ob der string kopiert werden muss, da der Referenzzähler > 1 ist. Um dies durchzuführen, greiften die internen Delphiroutinen auf die 8 Bytes, die vor einem String liegen zu. Bei dieser Deklaration hingegen, gibt es diese nicht.
  Mit Zitat antworten Zitat