MFCで標準出力にテキストを表示するには? – プログラミング – Home

MFCで標準出力にテキストを表示するに...
 
通知
すべてクリア

[解決済] MFCで標準出力にテキストを表示するには?


圭奈恵
 圭奈恵
(@圭奈恵)
ゲスト
結合: 25年前
投稿: 2
Topic starter  

MFCのダイアログ・ベースのアプリケーションを開発しています。
このプログラムでは、
 1.プログラム・アイコンをクリックして、通常のウィンドウズのプログラムの様に、
   メインとなるウィンドウ(本プログラムの場合はダイログボックス)に処理結果
   を表示する。
 2.DOS窓からコマンドラインで起動して、処理結果を起動もとのDOS窓にテキ
   スト表示する。
の2つを実現しようと考えています。

そして、メインとなるCDialogクラスのInitInstance()の中で、
前述の1.の場合は dlg.DoModal();、
前述の2.の場合は printf( 処理結果 );
としたところ、2.のケースで、起動もとのDOS窓に何も表示されませんでした。
GetStdHandle、CreateFile、WriteConsoleなどのWinAPIもためしてみましたが、
上手くいきませんでした。
どなたかMFCで標準出力にテキストを表示する方法を教えて頂けないでしょうか?
宜しくお願い致します。


引用未解決
トピックタグ
Nao@NSoft
 Nao@NSoft
(@Nao@NSoft)
ゲスト
結合: 25年前
投稿: 11
 

Nao@NSoftです。

MFCというわけではないのですが・・・

HANDLE hSrdOut = GetStdHandle(STD_OUTPUT_HANDLE);
TCHAR szWrite[] = 処理結果;
DWORD dwWritten;

if (WriteFile(hStdOut, szWrite, sizeof(szWrite), &dwWritten, NULL) != FALSE){
/* エラー処理 */
}

というような感じでできませんか?

#試してないのでできるかどうか分かりませんが。


返信引用
圭奈恵
 圭奈恵
(@圭奈恵)
ゲスト
結合: 25年前
投稿: 2
Topic starter  

残念ながらNGです。

理由は
「DOS窓からGUIアプリをコマンドライン起動した場合、
 コマンドラインプロセッサの標準入出力ハンドルは、
 継承されない」
からだそうです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました