Windowsアプリケーションでprintf:序章(というか前振り) [戯言]
Visual C++ の初心者が
「入門書のサンプル(Hello World)を入力したけど、うまく動かない」
と悩むんでいるのをよく見かけます。
ほとんどの場合、解決法は「コンソールアプリケーションとしてプロジェクトを作り直す」です。
Windowsアプリケーション(メニューやボタンのあるウィンドウが表示されて、マウスで操作する、良くあるタイプのアプリケーション)では、
printf("Hello, World!\n"); std::cout << "Hello, World!" << std::endl;
といった表示系の操作は無効になっています(どこにも何も表示されない)。
そもそも表示するべきコンソールが無いと言うのに、一体どこに表示しろと。
そんなある日。
GUIでの操作が前提のWindowsアプリケーションとして作ってあるソフトウェアを使用している客から、こんな要望が上がってきました。
「マウスで操作するのは鬱陶しいので、コマンドプロンプトから操作したい」
一応、キーボードで全操作が出来るようになってますが。
「毎回操作するのが面倒だから、ファイルに操作手順を書いておいて実行できるようにして」
だったら最初から、そう言ってください。
そう言えば、
GUIアプリケーションの操作を記憶して後で再現できるソフトがあったような気がする。
これを紹介して終りにしましょうか?
でも、「ちゃんと開発費は払う」と言っているので、実装することにします。
フリーのソフトを紹介しても紹介料は貰えませんから。
さて。
ファイルに必要な設定、操作を書いて、それをコマンドライン引数に指定すると、ファイルの内容に基づいて処理を行う機能を追加。
「バッチファイルで連続して処理したいのに、メッセージボックスが出ると処理が止まるから困るんだよねぇ」
操作ファイルを指定した時は、メッセージボックスは表示しないように変更。
「メッセージが表示されないと結果がわからん」
メッセージ類は全部ログファイルに出力されている(最初からの仕様)ので、それを見る訳には……。
「ファイル開くのが面倒。結果はコマンドプロンプトに表示して」
(つづく)
今日の一冊 | |
|
コメント 0