Forum: Win32/Win64 API (native code)
Delphi
by himitsu,
14. Apr 2017
Untypisierte Konstanten werden an der Verwendungsstelle eingefügt und eventuell angepasst.
const xxx = 'abc'; // untypisiert
const yyy: string = 'abc'; // typisiert
PChar(xxx) // compilerabhängig
PAnsiChar(xxx) // immer ein Ansistring
PWideChar(xxx) // immer ein Unicodestring
PChar(yyy) // immer richtig
PAnsiChar(yyy) // kann funktionieren (vor 2009), aber muß es nicht
Forum: Win32/Win64 API (native code)
Delphi
by himitsu,
14. Apr 2017
Nein, es sind keine aufgekotzten PChars.
Es sind aufgemotzte dynamische Char-Arrays. array of char
Delphi verwendet die Längenangabe, aber als Kompatibilität zeigt der interne Pointer nicht auf den Anfang der Steuerdaten, sondern dahinter, und hinter dem letzten Zeichen werden im Speicher noch zwei #0 abgelegt.
So kann der String-Pointer direkt als PChar verwendet werden (zum Lesen).
Der...
Forum: Win32/Win64 API (native code)
Delphi
by himitsu,
13. Apr 2017
Ratet mal, wie intern ein LongString (String, AnsiString, UnicodeString) und auch WideString aufgebaut sind .... Verwaltungsdaten+DemText+#0#0 :stupid:
Forum: Win32/Win64 API (native code)
Delphi
by himitsu,
13. Apr 2017
Geht das an ein anderes Programm?
Wenn ja, dann nicht PChar, sondern PAnsiChar oder PWideChar verwendent.
LongInt() ... in Blick richtung 64 Bit, solltest du hier besser auch die richtigen Typen verwenden.
Für Messages gibt es die Typen LPARAM, WPARAM und LRESULT.