Benutzer mit den meisten Antworten
Wir bewegen zwar Terabytes durch die Gegend... Aber...

Frage
-
Hi Leute,
also das kann es doch wirklich nicht sein, oder?!
Wir schreiben das Jahr 2010 und bewegen problemlos Terabytes auf kleinen Festplatten rum. Wir können unglaublich große Partitionen auf den RAID-Festplatten einrichten und verwenden was vor Jahren undenkbar war. Bald kommen sogar Festplatten auf den Markt, welche mit Hilfe von Mikrowellen vor dem schreiben auf der Scheibe gezielt Teile Punktgenau erhitzen. Wir können mit dem Huble-Teleskop Lichtjahre in den Weltraum schauen, fotografieren etc. und mit Jets unglaubliche Flugmanöver mit hilfe von Computern fliegen. In .Net 4.0 wurde sogar BigInteger eingeführt.
Aber wir Programmierer dürfen bei Process.Start() maximal 2080 Bytes übergeben?!?!? Wieso darf denn Microsofts VisualStudio z.B. 2400 Bytes (und mehr!!) lange Parameter verwenden und wir werden an (seltsame) 2080 Zeichen begrenzt? Verstehe ich nicht ganz.Zitat in der MSDN: Die Länge der Argumente, die der Länge des vollständigen Pfads zum Prozess hinzugefügt werden, muss kleiner als 2080 sein.
Meine (sehr ärgerliche) Frage ist: Warum? Bei einem C64 würde ich das noch verstehen. Aber wieso darf VisualStudio einen RIESIGEN String an den vbc.exe übergeben ohne zusammenzubrechen?!?!?Da hört bei mir irgendwie gerade der Programmierspaß auf :-(
Das .NET-Framework bietet ja wirklich zig-tausende von Hilfsmittel, man kann jeden erdenklichen Kram machen, aber gerade VERMEINTLICHE EINFACHE Sachen halten einen richtig auf.
Auf 2080 Bytes begrenzt. Ich komme wirklich gerade nicht darüber weg.
Gruß
AndyPS: Ja, ich bin gerade verärgert...
Antworten
-
Hallo Andy
gemäss
http://blogs.msdn.com/b/oldnewthing/archive/2003/12/10/56028.aspxgibt es in Windows eh diverse Limiten,
bei ShellExecuteEx ist eine davon INTERNET_MAX_URL_LENGTH, etwa 2048+32.Ungeprüft,
versuche mal die Variante
Process.Start(ProcessStartInfo)
http://msdn.microsoft.com/de-de/library/0w4h05yb.aspxdort mit UseShellExecute auf FALSE!
http://msdn.microsoft.com/de-de/library/system.diagnostics.processstartinfo.useshellexecute.aspx
Falls auch nicht, dann wäre dies nur eine weitere Einschränkung die .NET immer noch mitschleppt.- Als Antwort markiert VBAndy Sonntag, 8. August 2010 07:09
Alle Antworten
-
Hallo Andy
gemäss
http://blogs.msdn.com/b/oldnewthing/archive/2003/12/10/56028.aspxgibt es in Windows eh diverse Limiten,
bei ShellExecuteEx ist eine davon INTERNET_MAX_URL_LENGTH, etwa 2048+32.Ungeprüft,
versuche mal die Variante
Process.Start(ProcessStartInfo)
http://msdn.microsoft.com/de-de/library/0w4h05yb.aspxdort mit UseShellExecute auf FALSE!
http://msdn.microsoft.com/de-de/library/system.diagnostics.processstartinfo.useshellexecute.aspx
Falls auch nicht, dann wäre dies nur eine weitere Einschränkung die .NET immer noch mitschleppt.- Als Antwort markiert VBAndy Sonntag, 8. August 2010 07:09
-
Hallo Thomas,
auf diesen Schalter wäre ich nie nie niemals gekommen. Zumal der auch noch "versteckt" war, also in der Intelli erst gar nicht angezeigt wurde. Und selbst wenn er mir angezeigt geworden wäre, wäre ich nicht darauf gekommen, dass es die Lösung wäre.
Aber so wie es aussieht funktioniert es, denn über StandardOutput.ReadToEnd() bekomme ich jetzt eine saubere Antwort. Zwar sind das (noch) Fehlermeldungen, aber ich glaube ich habe mich schon lange nicht mehr so sehr über Fehlermeldungen gefreut wie jetzt :-)
Danke Thomas, danke!!!! :-)
Und: Sorry wenn ich heute Nacht leicht gekocht habe. Da sind mir mal kurz die Emotionen durchgegangen :-)Gruß
Andy