Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: PChar, PAnsiChar, PWideChar, Integer, LPARAM, ... ?

  Alt 4. Nov 2017, 20:51
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).

Habe selbe Zeile auch schon mit DWORD gesehen.
Hier wird u.a. auch Integer verwendet http://www.cryer.co.uk/brian/delphi/...eforfolder.htm
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 Delphi-Referenz durchsuchenNativeInt und Delphi-Referenz durchsuchenNativeUInt.

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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 5. Nov 2017 um 15:06 Uhr)
  Mit Zitat antworten Zitat