![]() |
WinExec, AnsiString und String und Delphi XE
Delphi-Quellcode:
Hallo,
WinExec(PAnsiChar('net user /add testuser '+PasswortVar),SW_HIDE);
ist es normal, dass o.g. Code nur funktioniert, sofern PasswortVar als AnsiString deklariert ist? Wenns ein String ist, funktioniert es in Delphi XE nämlich nicht ( in 2006 schon). |
AW: WinExec, AnsiString und String und Delphi XE
Win Exec gilt schon lange als veraltet und dient nur noch der Unterstützung von 16-Bit Programmen. Nimm lieber shellexecute, ShellexecuteEx oder CreateProcess. Un der Code funktioniert deshalb nur mit AnsiString weil der Datentyp String ab Delpghi2009 standardmäßig ein WideString (Unicode) ist.
|
AW: WinExec, AnsiString und String und Delphi XE
Und mit den genannten Funktionen kannst du dann auch auf PChar statt PAnsiChar casten. Das ist in XE dann ein PWideChar, so dass auch Unicodezeichen im Dateinamen funktionieren.
|
AW: WinExec, AnsiString und String und Delphi XE
Wobei man doch den Grund des Nichtfunktionierens hätte auch seber hätte rausbekommen können,
wenn man mal auf das hört, was einem der Compiler und die Dokumentation sagt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz