CreateProcess Kommandozeilelänge
-
Ich lasse vom User eine Kommandozeile eingeben die ich dann mit CreateProcess ausführe. In der MSDN Dokumentation steht das die maximale Länge dieses Strings 32 K Zeichen ist und unter Windows 2000 sogar nur 260 (MAX_PATH) Zeichen.
Muss ich jetzt noch eine spezielle Überprüfung einbauen wie in etwa:
if(IsRunningOnWindows2000()) { if(lstrlen(cmdline) > MAX_PATH) { // zu lang } } else if(lstrlen(cmdline) > 32 * 1024)) { // zu lang }Oder kann ich mir das sparen?
-
Jo, besser ist das
.
-
Wobei - wenn du das an mehreren Stellen brauchst, solltest du die Maximallänge nur einmal je nach System berechnen:
int max_len = IsRunningOnWindows2000() ? MAX_PATH : 32*1024; ... if(lstrlen(cmdline)>max_len) { //zu lang }