Forum: Programmieren allgemein
by jaenicke,
22. Sep 2013
Wenn du schreibst PAnsiChar(), macht Delphi intern nicht immer einen reinen Cast, sprich es passiert beim Cast auf AnsiString auch eine entsprechende Umwandlung (Compiler Magic). Das passiert aber nicht (oder jedenfalls nicht immer, ich dachte das schon mal gesehen zu haben), wenn es schon ein AnsiString ist:
Die darin aufgerufenen Funktionen sehen so aus:
procedure _LStrFromUStr(var...
Forum: Programmieren allgemein
by jaenicke,
21. Sep 2013
Du musst zuerst in einen AnsiString umwandeln und dann in einen PAnsiChar:
PAnsiChar(AnsiString(FileOpenDialog.FileName))
.
(es funktioniert aber meistens auch mit dem Cast wie du ihn hattest, weil das Delphi korrekt behandelt, Compiler Magic, aber besser ist das richtig auszuschreiben)