Windows フォーム アプリケーションを開発する場合、コンソール出力を表示する必要がある状況に遭遇することがあります。デフォルトでは、Windows フォーム アプリケーションには表示されるコンソール ウィンドウがありません。
次のコード スニペットを考えてみましょう:
<code class="language-csharp">using System.Windows.Forms; class test { static void Main() { Console.WriteLine("test"); MessageBox.Show("test"); } }</code>
これをコンソール アプリケーションとしてコンパイルすると、コンソール出力とメッセージ ボックスが表示されます。ただし、Windows フォーム アプリケーション (/target:winexe) としてコンパイルすると、メッセージ ボックスのみが表示されます。
Windows フォーム アプリケーションでコンソールを表示するには、次のコードを使用できます:
<code class="language-csharp">using System.Runtime.InteropServices; private void Form1_Load(object sender, EventArgs e) { AllocConsole(); } [DllImport("kernel32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] static extern bool AllocConsole();</code>
このコードは、kernel32.dll ライブラリの AllocConsole 関数を呼び出します。これにより、アプリケーションに新しいコンソール ウィンドウが作成されます。この関数が呼び出されると、それ以降のコンソール出力の呼び出しは、新しく作成されたウィンドウに表示されます。
以上がWindowsフォームアプリケーションにコンソール出力を表示する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。