Delphi控制台应用程序传递的命令行参数的最大长度

6

Delphi控制台应用程序传递的字符串长度是否有最大限制?我想传递大量JSON数据。我将使用ParamStr(x)函数读取数据。


更多信息请查看此链接:http://support.microsoft.com/kb/830473/en-us - user532231
3个回答

12

CMD.EXE 的最大长度为8192个字符。这是由于 CMD.EXE 本身的限制,这也是 Delphi 控制台应用程序能够接收到的最大数量。

CreateProcess 命令的最大长度为32767个字符。这是由于 UNICODE_STRING 结构造成的。

ShellExecute / EX 的长度受限于 INTERNET_MAX_URL_LENGTH,如Gamecat所述,它是2047个字符,除非您运行在Win95上; 在那里,极限只有MAX_PATH。

更多信息请参见Raymond Chen的博客文章


4
我认为 OP 接受了错误的答案!控制台应用程序不需要从 cmd.exe 启动。 - David Heffernan

8
命令行由操作系统限制为2047个字符。如果您需要使用更多数据,可以使用文件。

4
根据您提供的链接,Windows XP或更新版本最大长度为8191个字符。Windows 2000或NT4的最大长度为2047个字符。 - Mick
这个答案不正确,根据 Raymond Chen(请看我的回答)。不会点踩,只是提醒一下。 - Ken White

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接