* Win32アプリケーションで MS-DOS プロンプトを表示 [#bbca1be5]
 
 デバッグ目的なら OutputDebugString() で事足りるが、
 それ以外の場合にもコンソール表示したいよ?
 というときに便利な方法。
 
  AllocConsole()
 
 で、DOS 窓が表示され、
 
  WriteConsole()
 
 で、その DOS 窓に対して文字列を表示して、
 
  FreeConsole()
 
 
 で、その DOS 窓を閉じる。
 
 WriteConsole() の第1引数はバッファのハンドルであるが、
 
  GetStdHandle(STD_OUTPUT_HANDLE);
 
 で取得したものをそのまま使えば良い。
 
 
  Ex)
  
  // DOS 窓表示
  ::AllocConsole();
  
  // 適当な文字列
  char buf [16];
  sprintf( buf, "Hello World!\n" ); 
  
  // 表示
  DWORD dwSize;
  ::WriteConsole( GetStdHandle(STD_OUTPUT_HANDLE), buf, strlen( buf ), &dwSize, NULL );
  
  // DOS 窓を閉じる
  ::FreeConsole();
  
 
 これはいろいろ使い道がありそう。
 
 
 -----
 [[プログラム・開発系メモ]]
 
 

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS