コマンドプロンプトの使い方
「C言語徹底入門」では、開発ツールとしてVisual C++ 2010 Expressを使うことを想定していますが、最初のうちはGUIの統合開発環境を使わず、コマンドラインで操作を行います。コマンドラインというのは、GUIに対してCUI(Character User Interface)とも呼ばれ、ユーザーに対する情報の表示を文字だけを使って行い、入力はすべてキーボードから行います。Windowsでコマンドラインを扱うためのプログラムが「コマンドプロンプト」(下図)です。
エクスプローラの設定
このページの内容はC言語そのものとは何の関係もありません。ただ、これからWindows上でVisual C++ 2010 Expressを使ってC言語を学ぶ上で必要になることを解説します。どちらかといえばおさらいになりますので、Windowsの使い方に自信のある読者は読み飛ばしてもよいでしょう。
Microsoft Visual C++ 2010 Expressのインストール
C言語でプログラムを作成するには、開発ツールという一種のプログラムが必要になります。C言語で書かれたプログラムは、それ自体は単なるテキストデータにすぎません。コンピュータが実行できるようにするためにはコンピュータが理解できる言葉(=機械語)に翻訳しなければなりませんが、それを行うために必要なのが開発ツールです。
「C言語徹底入門」では、開発ツールとしてMicrosoft Visual C++ 2010 Expressを使うことを想定しています。このページでは、開発ツールのインストール方法について解説します。すでにインストール済みの場合、あるいは他の開発ツールを使う場合にはこのページは読み飛ばしてください。
[再発明] デバッガへの送信ストリーム
Windows 環境では、いわゆる printf デバッグを行うために OutputDebugString API を使用することがよくあります。この API は非常に単純で、使い勝手もそう悪くはありませんが、トレース情報の出力先をデバッガやらファイルやら標準出力やらに切り替えたいときには、FILE 型や std::ostream と交換できないためにやや面倒なこともあります。
そこで誰もが考えるのが、std::streambuf を継承して、OutputDebugString を用いて出力を行うクラスを作る、ないしはそのクラスを用いて std::ostream を継承したクラスを作るということです。そこで、今回は当サイトでも同じことを試みてみました。ただし、ほかでやっているのは std::streambuf::overflow をオーバーライドする実装が多いようですので、当サイトでは std::streambuf::xsputn をオーバーライドすることにしてみました。
