Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Windows API: HTTP D11 vs. D10

  Alt 18. Jul 2023, 16:09
Ich glaub, ich weiß, wo es hakt. Der Accept-HEader liefert nicht nur */*, sondern danach noch eingies an Datenmüll.
PChar haben eine #0 hinten dran und Delphi-Strings aka LongStrings (also alles außer dem ShortString) sogar zwei implizite #0#0 (so lange der Entwickler nicht am Speicher rumpfuscht, ala BufferOverflow).


Array und Packed-Array sollten hier keinen Unterschied haben, da Pointer quasi immer packed sind (weil sie keine ungerade unausgerichtete Größe besitzen, also immer bereits ausgerichtet sind und es somit auch keine Lücke gibt)




Laut Dokumentation ist die #0 aber nicht ganz richtig.
Delphi-Quellcode:
accept[0] := PAnsiChar('*/*');
accept[1] := nil; // ein Zeiger auf NICHTS, während PChar(#0) ein Zeiger auf einen String aus einem #0 ist (eigentlich aus zwei #0, inkl. dem PChar-Terminator)
Zitat:
Code:
PCTSTR rgpszAcceptTypes[] = {_T("text/*"), NULL};
C++-NULL = Delphi-nil
$2B or not $2B

Geändert von himitsu (18. Jul 2023 um 16:18 Uhr)
  Mit Zitat antworten Zitat