ネイティブ C Windows プログラムでのコンソール出力の表示
WinMain エントリ ポイントを使用する C Windows プログラムでは、std などの関数によって生成されるコンソール出力: :cout はデフォルトでは表示されない場合があります。これは、グラフィカル ユーザー インターフェイス (GUI) アプリケーションには通常、関連付けられたコンソール ウィンドウがないためです。
解決策:
1.アプリケーションにコンソールを接続します。
2.コンソール出力をファイルにリダイレクトします:
コンソール リダイレクトを使用したサンプル コード:
次のコード スニペットは、コンソールを Windows プログラムに接続し、ストリームを Windows プログラムにリダイレクトする方法を示しています。それ:
void RedirectIOToConsole() { int hConHandle; long lStdHandle; CONSOLE_SCREEN_BUFFER_INFO coninfo; FILE *fp; // Allocate a console for this app AllocConsole(); // Set the screen buffer size for scrolling GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &coninfo); coninfo.dwSize.Y = 500; SetConsoleScreenBufferSize(GetStdHandle(STD_OUTPUT_HANDLE), coninfo.dwSize); // Redirect stdout lStdHandle = (long)GetStdHandle(STD_OUTPUT_HANDLE); hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); fp = _fdopen(hConHandle, "w"); *stdout = *fp; setvbuf(stdout, NULL, _IONBF, 0); // Redirect stdin lStdHandle = (long)GetStdHandle(STD_INPUT_HANDLE); hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); fp = _fdopen(hConHandle, "r"); *stdin = *fp; setvbuf(stdin, NULL, _IONBF, 0); // Redirect stderr lStdHandle = (long)GetStdHandle(STD_ERROR_HANDLE); hConHandle = _open_osfhandle(lStdHandle, _O_TEXT); fp = _fdopen(hConHandle, "w"); *stderr = *fp; setvbuf(stderr, NULL, _IONBF, 0); }
を含めるヘッダー:
#include "guicon.h"
使用法:
#ifdef _DEBUG RedirectIOToConsole(); #endif
以上がネイティブ C Windows プログラムでコンソール出力を表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。