Zitat von
mael:
Manchmal wünsche ich mir einen FreePascal Compiler der das alles macht, direkt Delphi-Code kompilieren kann (also vollständig kompatibel), auf SSE und 64 Bit optimiert und die Entwickler von FreePascal sich einen ordentlichen Codingstil angewöhnen
Ein Delphi-Compiler, der das könnte, würde mir schon reichen
Zitat von
mael:
Irgendwie lies dieses MaximumLength mich schon vermuten daß irgendwo ein buffer overrun verhindert werden soll. Aber mal ehrlich, warum verwendet MS nicht die WideStrings, da hätten die solche Probleme nicht
, das könnte man dann einfach casten.
Bevor man mir sagt C++ hat keine WideStrings: Ich weiß, aber die Struktur/Record hätten die ja nur ein klein wenig anders machen müssen und dann wäre das kompatibel.
Warum sollte Microsoft zu etwas kompatibel sein, was sie nicht erfunden haben, was allein der Konkurrent unterstützt und was in ihrer eigenen Haussprache nicht unterstützt wird?
Außerdem verhindern auch WideStrings keinen Buffer-Overrun, falls du das andeuten wolltest (die beiden Sätze stehen so verdächtig im gleichen Absatz
).
Und "einfach" Casten ist dank Compiler-Magic bei Strings auch so eine Sache
MaximumLength sagt Windows übrigens wie groß der Buffer ist, den deine Anwendung allokiert hat und ist eigentlich nur dafür da, wenn Windows Daten in den Buffer schreiben soll. Es selbst weiß ja nicht, wie groß der Buffer ist, deswegen muss man es ihm mitteilen. Das wirst du bei allen C-Konstrukten finden, die irgendwie mit Strings zu tun haben.