Zitat:
Warum sollte man eine 10 jahre alte Delphi-Version verwenden?
Weil es nicht nur Delphi gibt?
z.B. FreePascal und Lazarus (die bekannteste
IDE und
GUI-Framework dafür)
Da hat man sich zu großen Teilen für UTF-8 entschieden, als man auf
Unicode umstellte, während Delphi sich an der
WinAPI orientiert, also UTF-16 (seit WinXP) und UCS-2 (Win2K).
DWORD ist noch falscher, als Integer.
Die Parameter von SendMessage sind Systemabhängig, also unter 64 Bit sind sie ebenfalls 64 Bit.
DWORD ist immer nur 4 Byte.
Integer/Cardinal waren mal Systemtypen > in Windows 3.1 16 Bit waren sie ebenfalls 16 Bit, aber bei der Entwiclung zu 64 Bit hatten sich die großen Entscheider entschiden den Integer einzufrieren und einen neuen Typ zu erfinden. In Delphi nennen sie sich
NativeInt und
NativeUInt.
Vergleichbar Char, PChar und String, welche sich anpassen.
AnsiString, AnsiChar PAnsiChar usw. sind immer fest definiert.
Passend zu diesen Typen gibt es auch sich selbt anpassende Funktionen.
z.B. CreateFile (PChar) und CreateFileA (PAnsiChar) oder CreateFileW (PWideChar).
Vorallem in der
WinAPI hat eine
API-Funktion auch genau eine Parameterdefinition, je Systemkonfiguration (
ANSI/
Unicode + 32/64 Bit).
Es gibt die beiden
ANSI- und
Unicode-Versionen und einen Alias, der auf das aktuell hauptsächlich unterstützte System verweist.
Also erstmal kommt die Entscheidung ob der geschriebene Code statisch oder dynamisch ist.
> ist er
immer nur
ANSI oder
Unicode (bzw. 32 oder 64 Bit)
> oder passt er sich ans System an
Dementsprechend muß man dann auch die passenden Typen und Funktionen verwenden (statisch oder dynamisch).
Bei der Vermischung von statisch und dynamisch kommt es zu problemen, wenn das System sich ändert, da sich dann ein Teil ans system anpasst und der Andere bleibt unverändert.