Forum: Win32/Win64 API (native code)
by himitsu,
16. Apr 2020
Hast du wirklich "C:\Benutzer" verwendet?
Hier wirs du viel Spaß haben,
denn C:\Users ist der richtige Name, dafür wurde eine Übersetzung definiert, damit der Explorer und die Speichen-/Öffnen-Dialoge es lokalisiert anzeigen,
und zusätzlich gibt es noch einen unsichtbaren Link, der Benutzer heißt und auf Users zeigt, für die, welche das eingeben, was der Explorer anzeigt.
Tja, und nun...
Forum: Win32/Win64 API (native code)
by himitsu,
14. Apr 2020
Ich hatte erst an den VirtualStore gedacht, aber dann wäre eher in 32 Bit der Fehler mit dem falschen Datum zu vermuten, wenn dort eine "andere" Datei nach der Redirection erwischt wird. :gruebel:
Außer der TE hatte schon das Problem und bekommt nun das "richtige" Datum, :stupid:
aber wir wissen ja nicht was es für Dateien sind, bzw. wo sie liegen.
Forum: Win32/Win64 API (native code)
by himitsu,
4. Okt 2016
UInt64 ist halt "richtiger", aber so lange die Dateien kleiner als 9,22 ExaByte sind, gibt es selten Probleme.
Aber früher gab es auch keine Probleme, wenn jemand Pointer zu Integer castete, dazumal damals schon Cardinal richtiger gewesen wäre, aber es jetzt ja eigentlich NativeUInt wäre.
Forum: Win32/Win64 API (native code)
by himitsu,
4. Okt 2016
JA
Delphi erweitert Typen automatisch nur auf 32 Bit, solange alle Typen maximal 32 Bit sind, mit dem selben Vorzeichen (SIGNED- und UNSIGNED-Typen)
Das macht der Compiler aus deinem Code:
Groesse := (LongWord(wfd.nFileSizeHigh) * LongWord(MAXDWORD)) + LongWord(wfd.nFileSizeLow);
Aber du willst ja eher
Groesse := (UInt64(wfd.nFileSizeHigh) * LongWord(MAXDWORD)) +...