無料で入手できるコンパイラの代表例といえばGCC系ということになる。Windows環境の場合、MinGWとかCygwinあたりが比較的メジャーではないかと思う。他にも、昔はWatcom C/C++として販売されていた製品が、現在はOpen Watcomとして入手できるし、他にもDigital MARSのC/C++とかがある。無償ではないが、低価格なものとしてはエンバカデロ・テクノロジーズ(旧Borland)のC++ Builder XEのStarter Editionは\18,900とかで入手可能だ。こうしたものと同様に、実はMicrosoftもあくまで評価版という扱いながら、無償で利用できるVisual Studio 2010 Expressをリリースしている(これはProfessional版以上に用意されている評価版とは別のものである。こちらは30日間のみ利用できるが、その後は正規に購入しないと継続しての利用が出来ない)。Visual Studio 2010 Expressの場合、C#/Basic/C++/Web Developerの4種類があり、好きなものを利用可能である。今回はこのC++を利用しての開発方法をご紹介する。

実は筆者自身はVisual Studio Professional with MSDNサブスクリプションの契約をずっとしており、なのでVisual Studio 2010 Professionalが使えるので基本的にはこちらでプログラムを開発したのだが、Visual Studio 2010 ProfessionalとExpressの違いは、大きなところでは、

  • 64bitアプリケーションがビルドできない(32bitに関しては制限なし)
  • リソースエディタが搭載されていない

といったところか。厳密に言えばExpressはProfessionalなど上位版の機能制限版というよりは、簡易版といった扱いで、なのである程度プログラムを作りこんだりデバッグしたり、という作業を煩雑に行うようになると、特に使い勝手の観点で不満を感じる場合があるかもしれない(実際ProfessionalからExpressに乗り換えると、ちょっと面倒だなと感じるケースがしばしばある)。ただ32bitアプリケーションに関して言えば、Professional版でビルドしたプロジェクトをExpressで開いて作業するとか、逆にExpressで編集したプロジェクトをProfessionalで開いて作業するといった事に関しては互換性がちゃんと取れており問題はない。いきなり「んじゃ\128,000払ってVisual Studio Professional with MSDN Subscription買います」と言える人はそう多くないだろうし、ホビーユーザーであればExpressで十分ではないかと思う(ちなみに筆者は、これが仕事なのでもう十年以上に渡って毎年MSDNの契約を更新している。ここ数年はOpen Value契約とすることで1年辺りの金額を抑えているが、それでも年あたり数万円の出費である。それが仕事、というのでなければ正直あまりお勧めはしにくい金額だ)。

さて話を戻す。インストールは(手間こそかかるが)簡単である。先ほどのページで、Visual C++ 2010 ExpressのWebダウンロードを選択し、ダウンロードしたインストーラーを起動するだけだ。DVDイメージをダウンロードして、そこからインストールするという方法もある。

ちなみにVisual C++ 2010 Expressも、登録無しで利用できるのは30日までである。これを超える場合、無料ではあるがWindows Live IDの登録が必要である(もうWindows Live IDを取得している人は、新たに取得しなおす必要はない)。Windows Live IDを取得したあとは、オンラインで登録キーを取得、これをVisual C++ 2010 Expressに入力してやれば、30日を超えても問題なく利用可能である。

正常にインストールが終わった後は、起動するとこんな画面になる筈だ(Photo01)。インストールだけしても仕方が無いので、Hello, worldくらいは作ってみることにしよう。Photo01の"新しいプロジェクトを作成する"をクリックするとウィザードが立ち上がる(Photo02)ので「Win32コンソールアプリケーション」を選び、適当な名前を入れよう(Photo03)。OKを押すとウィザードが立ち上がるので(Photo04)、必要なら設定などして(Photo05)から「完了」を押すと、空のプログラムが出現する(Photo06)。

Photo01: 確かVisual Studio 2008の頃(2005だったかもしれない)からソリューションという概念が追加されて、ますますわかりにくくなった。筆者は、「プロジェクト=1つのプログラムを構成するプログラム/ファイル全体の総称」「ソリューション=概ねプロジェクトと同等」という理解をしている。

Photo02: Visual C++ 2010 Expressで作成できるものの一覧がここに出てくる。とりあえずはWin32コンソールアプリケーションを選ぶ。

Photo03: 名前の欄にhelloworldと入れると、自動的にソリューション名もこれに変更される。

Photo04: Win32コンソールというのは、要するにDOS窓で動くプログラムの意味である。ここで「次へ」ではなく「完了」を押しても、今回の場合一向に差し支えはない。

Photo05: 多少設定項目はあるが、DLLを作るといったケースでもない限り、概ねデフォルトのままで大丈夫である。もっとも好みで、「プリコンパイル済みヘッダー」のチェックを外す場合もあるが。

Photo06: このままビルドすると、何もしないで終わるプログラムとなるので、後はここに自分のコードを追加するだけである。

今回の場合はHello, worldなので、

(1) インクルードファイルにstdio.hを追加する
(2) return 0;で終了する前にprintfを追加する

と書き換えてから(Photo07)、「デバッグ」→「ソリューションのビルド」でプログラムのビルドを行う(Photo08)。問題が無ければ正常終了と表示される筈だ(Photo09)。コマンドプロンプトから起動すると、Hello, worldが表示される筈だ。

Photo07: このくらいの分量だと別に手で直接打ち込んでも差し支えないだろう。さすがにプログラムの説明は割愛(笑)。

Photo08: ビルドとは、プログラムのコンパイル→ライブラリのリンク→実行プログラムの作成までを一気に行う流れの事。昔のVisual Studioだとコンパイルだけを行うメニューとか標準であったのだが、最近は「ツール」→「設定」で、「上級者用の設定」を選ばないと出てこなくなった。

Photo09: これが慣れるまで判りにくい。"1 正常終了"で、正常にビルドが終わったことを示す。

Photo10: Visual C++ 2010 Expressの中から起動してもいいのだが、一瞬で実行が終わって画面が消えてしまうのでわからない、というのが欠点である。仕方なく、別にDOSウィンドウを開いて実行しているわけだ。

とりあえずここまで動いたら一段落である。

(続く)