Entwickler-Ecke
Windows API - PChar und WideStrings
error - Do 31.07.08 13:40
Titel: PChar und WideStrings
Moin,
ich habe ein Programm, in dem ich WideStrings für Ordner- und Dateinamen und andere Benutzereingaben benutze, damit auch Dateien mit Sonderzeichen akzeptiert werden. Das scheint auch soweit zu laufen, aber nun möchte ich diese Dateinamen als Parameter an ein anderes Programm von mir übergeben. Damit sie in ShellExecute benutzt werden können muss ich sie ja anscheinend zu PChar bzw. PAnsiChar casten.
Meine Fragen dazu:
1) Ist WideStrings zu benutzen überhaupt "richtig" oder gibt es einen besseren Weg?
2) Kann ShellExecute mit WideStrings/PAnsiChars umgehen?
3) Ist PAnsiChar überhaupt der richtige Typecast?
Wäre schön, wenn mir das wer beantworten könnte, denn ich werde aus der Hilfe nicht so ganz schlau.
Gausi - Do 31.07.08 13:47
Einen WideString zu PAnsiChar oder PChar casten geht nur über den Zwischencast nach String, also
Delphi-Quelltext
1:
| MeinPChar := PChar(String(MeinWideString)); |
Das bringt dir aber nichts, weil dabei natürlich "echte" Widestrings kaputt gehen. Shellexecute kommt nicht mit WideStrings bzw. PWideChars klar. Aber - wie bei fast allen Api-Funktionen - kann man ein W dranhängen, um die entsprechende Widestring-Variante zu erhalten. ;-)
Delphi-Quelltext
1:
| ShellExecuteW(...weiter wie ohne W, nur mit PWideChars anstelle von PChar...) |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!