12

私は、実行時に大量のデータが渡されるコンソール アプリケーションを C# で作成しています。そのうちの 3 つは、ユーザー名、パスワードなどの短い文字列です。ただし、そのうちの 1 つはかなり長い XML ドキュメントです。

コマンドライン引数として文字列を渡す場合、文字列の長さはどれくらいですか?

実行時に C# コンソール アプリにデータを渡すためのより良い代替手段はありますか?

4

2 に答える 2

16

制限については、次の場所にあります。

  • CreateProcess 関数のコマンド ラインの最大長は 32767 文字です。この制限は UNICODE_STRING 構造によるものです。

  • CreateProcess は、プロセスを作成するためのコア関数であるため、Win32 と直接やり取りしている場合は、心配する必要がある唯一の制限です。ただし、他の方法で CreateProcess に到達している場合は、通過するパスに他の制限がある可能性があります。

  • CMD.EXE コマンド プロセッサを使用している場合は、CMD.EXE によって課される 8192 文字のコマンド ラインの長さ制限も適用されます。

  • ShellExecute/Ex 関数を使用している場合は、ShellExecute/Ex 関数によって課される INTERNET_MAX_URL_LENGTH (約 2048) コマンド ラインの長さ制限の対象になります。(Windows 95 で実行している場合、制限は MAX_PATH のみです。)

より良い方法または代替手段-すべてのパラメーターを含むファイル、おそらくXMLを使用し、このファイルをコマンドライン引数として渡します。

于 2012-06-17T08:27:57.583 に答える
3
于 2012-06-17T08:43:37.673 に答える