Forum: Win32/Win64 API (native code)
by himitsu,
4. Jan 2017
Nein, kann man nicht.
FillChar/ZeroMemory überschreibt nur bestehenden Speicher. Es wird niemals Speicher reserviert.
PS: SetLength hat schon ein FillChar integriert. (aber nur für Arrays und nicht für Strings)
In Bezug auf Strings gibt es auch noch SetString, was ein SetLength+CopyMemory ist.
Sinn, erstmal in Bezug auf CodeConvertierung zwischen Delphi und C++.
Und dann die "logische"...
Forum: Win32/Win64 API (native code)
by himitsu,
4. Jan 2017
FillChar ist ein "böser" Name, aber wenn man bedenkt, dass in C++ ein Byte auch als UCHAR benannt wird (unsigned char)
und dass "früher" auch im Delphi ein Char (AnsiChar) mal 1 Byte groß war.
PS: FillChar -> ZeroMemory (kennt auch Delphi)
In C++ gibt es noch SecureZeroMemory, da dort der Compiler eventuell das "Macro" ZeroMemory wegoptimiert, wenn man danach nicht mehr lesend auf diese...
Forum: Win32/Win64 API (native code)
by himitsu,
4. Jan 2017
Such hier mal meinen FileSplitter. (große Datenmengen schnell lesen/schreiben)
Es gibt grundsätzlich erstmal mehrere Wege für Dateizugriffe, die auch kombiniert werden können.
* MemoryMappedFiles > Dateiinhalt in den Arbeitsspeicher gemappt
* buffered ReadFile/WriteFile
* nonbuffered ReadFile/WriteFile
* man kann beim Dateiöffnen angeben, ob man sequentiell oder zufällig auf die Datei...