Microsoft Visual C++ Web Site

初心者のための Microsoft Visual C++

Ranga Narasimhan
Microsoft Corporation

適用対象: Microsoft Visual C++ Version 6.0


目次

Visual C++ について
Visual C++ AppWizard
コンソール プロジェクトと Windows® プロジェクト
ワークスペースとプロジェクト
Win32® コンソール アプリケーションの作成
プロジェクトへのファイルの追加
ナビゲーション
コンパイルとリンク
プロジェクトのクリーニングとコピー
ビルド エラーのトラブルシューティング
ワークスペースへの新しいプロジェクトと既存のプロジェクトの追加
ヒント
結論
関連情報


要約:   この記事は、C/C++ プログラミングと Visual C++ に初めて接する人のために書かれています。C/C++ プログラミングに関する教則本ではありません。この記事は、読者に Visual C++ 環境を紹介し、以下の作業を行えるようにすることを目的としています。

  • AppWizard を使って簡単な Win32 コンソール ベースのプログラムを作成する。
  • プロジェクトとワークスペースの構造を理解する。
  • コンパイラとリンカのエラーのトラブルシューティングを行う。



Visual C++ について

Microsoft Visual C++ 6.0 は、Visual Studio® 6.0 開発プロダクト ファミリーのメンバです。Standard、Professional、および Enterprise の 3 つの Edition があります。詳細については、MSDN ライブラリの "Visual C++ の各 Edition" を参照してください。

Visual C++ には、32 ビットの C/C++ プログラムの作成、ビルド、および デバッグが行える統合開発環境 (IDE) が用意されています。また、この IDE では、ソース コードのナビゲーションを簡単に行うことができます (詳細については、この記事の ナビゲーション のセクションを参照してください)。


Visual C++ AppWizard

Visual C++ には、新しいプログラムの作成をガイドする AppWizard (アプリケーション ウィザード) のセットが用意されています。これらの AppWizard では、基本的な設定およびコードが提供されるため、かなりの時間を節約することができます。作成するアプリケーションのタイプに応じて、適切な AppWizard を選択することが重要です。

AppWizard を表示するには

  1. [ファイル] メニューの [新規作成] をクリックします。
  2. [プロジェクト] タブをクリックします。
    図 1 のように、AppWizard が表示されます。
  3. リストから、[Win32 Console Application] を選択します。
    AppWizard は、コンソール ウィンドウでのキャラクタ モード サポートを提供しているコンソール API 関数を使用するコンソール プログラムの作成を支援します。


    図 1. Win32 Console Application AppWizard
    上の画像をクリックすると大きい画像を表示します。

    ヒント    詳細については、MSDN ライブラリの "概要: コンソール プログラムの作成" を参照してください。


コンソール プロジェクトと Windows プロジェクト

コンソール プログラムは MS-DOS コマンド プロンプトのもとで実行されることを想定しています。これは 32 ビット プログラムですが、Windows プログラムではありません。C/C++ のコンソール ベース プログラムで最初に呼び出される関数は次のものです。

int main(int argc, char *argv[])

Windows ベースのプログラムで最初に呼び出される関数は次のものです。

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)

コンソール アプリケーションは、ダイアログなどのユーザー インターフェイスは表示しません。C/C++ プログラミングの初心者は、コンソール アプリケーションの作成に集中することをお勧めします。


ワークスペースとプロジェクト

Visual C++ は、AppWizard を使って作成されたプログラムを、ワークスペースの中でプロジェクト単位に整理します。つまり、ワークスペースは複数のプロジェクトから構成され、個々のプロジェクトはファイルを含んでいます。プロジェクトはファイルを共有することができます。この構造を次の図に示します。

図 2. Visual C++ におけるワークスペースとプロジェクトの構造

上の図の Sample ワークスペースは、A、B、および C の 3 つのプロジェクトを含んでいます。これらのプロジェクトは、それぞれ a.cpp、b.cpp、および c.cpp の異なる C++ ファイルを含んでいます。これらのファイルは 3 つのプロジェクトの間で共有されています。

 ワークスペース情報は.dsw の拡張子を持つファイルに、プロジェクト情報は.dsp の拡張子を持つファイルに格納されています。AppWizard は、デフォルトではワークスペースとプロジェクトを 1 つずつ作成します。ワークスペースに複数のプロジェクトを追加する方法については、後のセクションで説明します。Visual C++ がプロジェクトのために作成する初期ファイルの詳細については、MSDN ライブラリの "Visual C++ プロジェクトに対して作成されるファイルの種類" を参照してください。

ワークスペースを開くには

  1. [ファイル] メニューの [ワークスペースを開く] をクリックします。
  2. .dsw の拡張子を持つワークスペース ファイルを探します。

別の方法として、プロジェクト ファイル (*.dsp) を開くこともできます。.dsw と.dsp のファイル名拡張子にはシェル エクステンションが関連付けられているので、Windows エクスプローラを使って.dsw または.dsp ファイルを探し、ファイルをダブルクリックすれば、Visual C++ でワークスペースを開くことができます。


Win32 コンソール アプリケーションの作成

以下に、新しいコンソール プロジェクトを作成する手順を示します。

新しいコンソール プロジェクトを作成するには

  1. [ファイル] メニューの [新規作成] をクリックし、[プロジェクト] タブをクリックします。
  2. [Win32 Console Application] をクリックします。
  3. [位置] エディット ボックスで、プロジェクトの位置を指定します。
  4. [プロジェクト名] テキスト ボックスにプロジェクト名を入力します。
    [位置] エディット ボックスは、ステップ 2 で入力したプロジェクト名の後に円記号 (¥) を追加します。プロジェクト ファイルは、[位置] で指定したディレクトリの中のサブディレクトリに格納されます。
    図 3 は、C:¥My Programs¥TestProgram ディレクトリの中に作成される、TestProgram という名前の Win32 コンソール プロジェクトを示しています。


    図 3. 新しいコンソール プロジェクトの作成
    上の画像をクリックすると大きい画像を表示します。
  5. [OK] をクリックします。
    [Win32 Console Application - ステップ 1/1] ダイアログ ボックスが表示されます。
  6. デフォルトの選択項目である [空のプロジェクト] を受け入れて、[終了] をクリックします。
    他の選択項目では、いくつかのファイルとその他の設定が作成されます。図 4 を参照してください。


    図 4. [Win32 Console Application - ステップ 1/1] ダイアログ ボックス
    上の画像をクリックすると大きい画像を表示します。

    Visual C++ 5.0 ユーザーのための注    このダイアログ ボックスは表示されないので、ステップ 6 は省略してください。デフォルトでは、AppWizard は空のプロジェクトを作成します。

  7. 最後の [新規プロジェクト情報] ダイアログ ボックスに、作成されたプロジェクトの内容と要約が表示されます。[OK] をクリックします。

Visual C++ は、TestProgram プロジェクトの一部として、以下に示すファイルのセットを作成します (これらのファイルは C:¥My Programs¥TestProgram ディレクトリに格納されます)。

  • TestProgram.DSW: ワークスペース ファイル
  • TestProgram.DSP: プロジェクト ファイル
  • TestProgram.OPT: ワークスペース設定ファイル
  • TestProgram.NCB: ClassView ファイル (AutoCompletion のための情報も含まれています)

Visual C++ がプロジェクトのために作成する初期ファイルの詳細については、MSDN ライブラリの "Visual C++ プロジェクトに対して作成されるファイルの種類" を参照してください。

注    .dsw および.dsp ファイルは削除しないでください。.opt および.ncb ファイルは、ワークスペースを開いたときに Visual C++ によって再生成されるので、名前の変更や削除を行ってもかまいません。

上記の操作を行うと、空のプロジェクトを含んだワークスペースが作成されます。空のプロジェクトは、ソース ファイルを何も含んでいません。プロジェクトとワークスペースの両方が TestProgram という名前になります。空のプロジェクトにファイルを追加するには、次の操作を行います。

空のプロジェクトにファイルを追加するには

  1. [ファイル] メニューの [新規作成] をクリックし、[ファイル] タブをクリックします。
  2. [C++ ソース ファイル] をクリックします。
  3. [ファイル名] テキスト ボックスにファイル名を指定します。デフォルトでは、[プロジェクトへ追加] チェックボックスがオンになっています。また、デフォルトのファイル名拡張子は.cpp です。たとえば、Test と入力すると、ファイル名は Test.cpp になります。.c というファイル名拡張子を与えたい場合には、明示的に指定する必要があります。図 5 を参照してください。

    図 5. [新規作成] ダイアログ ボックス
    上の画像をクリックすると大きい画像を表示します。
  4. [OK] をクリックします。
  5. 空のファイルに、次のコードを入力します。

    #include<stdio.h>
    float ver;
    void main()
    {
        ver = 6.0;
        printf("Welcome to Visual C++ %.1f¥n",ver);
    }

  6. [ビルド] メニューの [ビルド TestProgram.exe] をクリックするか、F7 キーを押します。
    これにより、プロジェクト全体のコンパイルとリンクを行うビルド プロセスが開始されます。プロジェクトに複数のファイルが含まれている場合には、そのすべてのファイルがビルドされます。ビルドの進捗状況は、Visual C++ IDE の下部のアウトプット ウィンドウに表示されます。このプロジェクトでは、図 6 のような内容が表示されるはずです。


    図 6. アウトプット ウィンドウ
    上の画像をクリックすると大きい画像を表示します。

図 6 の情報は、TestProgram.exe という実行可能ファイルの作成が、エラーや警告なしに成功したということを示しています。プログラムにエラーが含まれている場合には、このウィンドウに適切なメッセージが表示されます。また、"構成: TestProgram - Win32 Debug" という表示もあります。これはデフォルトの構成であり、"Win32 Release" またはカスタム構成に変更することもできます。詳細については、この記事の コンパイルとリンク を参照してください。

開かれているファイルのコンパイルだけを行いたい場合には、[ビルド] メニューの [コンパイル Test.cpp] を選択します。この操作では、実行可能ファイルは生成されません。詳細については、この記事の コンパイルとリンク を参照してください。

TestProgram.exe を実行するには

  1. [ビルド] メニューの [実行 TestProgram.exe] を選択するか、Ctrl+F5 を押します。
    MS-DOS プロンプトと、"Welcome to Visual C++ 6.0" というメッセージが表示されます。
  2. 適当なキーを押します。

プロジェクトへのファイルの追加

前に述べたように、プロジェクトは.h や.rc といったさまざまな拡張子のファイルをいくつも持つことができます。TestProgram コンソール プロジェクト (「Win32 コンソール アプリケーションの作成」のセクションを参照) にヘッダー ファイル (.h) を追加するには、次の操作を行います。

TestProgram コンソール プロジェクトにヘッダー ファイル (.h) を追加するには

  1. [ファイル] メニューの [新規作成] をクリックし、[ファイル] タブをクリックします。
  2. [C/C++ ヘッダー ファイル] を選択します。
  3. [ファイル名] テキスト ボックスにファイル名を入力します。
    デフォルトのファイル名拡張子は.h です。たとえば、Test と入力すると、ファイル名は Test.h になります。別の拡張子を付けたい場合には、明示的に指定する必要があります。
  4. [OK] をクリックします。
       デフォルトでは [プロジェクトへ追加] チェックボックスがオンになっています。このチェックボックスはオフにしないでください。オフにすると、そのファイルはビルド プロセスの中でビルドされない可能性があります。

既存のファイルを追加するには

  1. Visual C++ で、ファイルを追加したいプロジェクトを開きます。
  2. [プロジェクト] メニューの [プロジェクトへ追加] をクリックします。
  3. [ファイル] をクリックします。
  4. [プロジェクトへファイルを追加] ダイアログ ボックスで、ファイルを選択し、[OK] をクリックします。

これで、既存のファイルを再利用することができます。コードの再利用は、C++ を強力な言語としている特長の 1 つです。


ナビゲーション

Visual C++ のワークスペース ウィンドウでは、きわめて簡単にナビゲーションを行うことができます。このウィンドウを起動するには、[表示] メニューの [ワークスペース] をクリックします。すでに TestProgram コンソール プロジェクト (「Win32 コンソール アプリケーションの作成」のセクションを参照) を作成している場合には、ワークスペース ウィンドウには [ClassView] と [FileView] の 2 つのタブがあります (図 7 を参照)。

図 7. ワークスペース ウィンドウ

ClassView

[ClassView] タブには、プロジェクトに含まれている C++ クラスとグローバル データが表示されます。TestProgram プロジェクトでは、TestProgram クラス と表示されるはずです (図 7 を参照)。+ 記号をクリックすると、ノードが展開され、[グローバル] フォルダが表示されます。このフォルダをクリックすると、mainver が表示されます。main 関数を含んでいるファイルを見るには、main をダブルクリックします。これにより、main 関数のところにカレットが置かれた状態で、Test.cpp ファイルが開かれます。

ClassView の詳細については、MSDN ライブラリの "概要: ClassView" を参照してください。

FileView

[FileView] タブには、プロジェクトに属しているファイルが表示されます。TestProgram プロジェクトでは、TestProgram ファイルと表示されるようになります。これを (+ 記号をクリックして) 展開すると、[Source Files]、[Header Files]、および [Resource Files] が表示されます。プロジェクトは、[Source Files] フォルダの下に 1 つのファイル (Test.cpp) しか含んでいません。プロジェクトに Test.h という別のファイルを追加すれば、このファイルは [Header Files] フォルダの下に表示されるはずです。これらのフォルダは、それぞれ該当する拡張子を持つファイルを含んでいます。ソース ファイルは通常は.c または.cpp のファイル名拡張子を持ち、ヘッダー ファイルは.h のファイル名拡張子を持ちます。ファイルをダブルクリックすると、ソース エディタでそのファイルが開かれます (図 8 を参照)。

図 8. [FileView] タブ

FileView の詳細については、MSDN ライブラリの "FileView" を参照してください。

また、ウィザード バーをナビゲーションに使用することもできます。ウィザード バーをアクティブにするには、次の操作を行います。

ウィザード バーをアクティブにするには

  1. [ツール] メニューの [カスタマイズ] をクリックします。
  2. [ツールバー] タブをクリックします。
  3. [ツールバー] ウィンドウで、ダイアログの左側の [ウィザード バー] をクリックします。

詳細については、MSDN ライブラリの "概要: ウィザード バー" を参照してください。


コンパイルとリンク

コンパイル プロセスは、オブジェクト (.obj) ファイルとその他の中間ファイルを作成します。Visual C++ コンパイラの CL.EXE は、すべてのプロジェクト ファイルを入力として受け取り、それらに対応する.obj ファイルを生成します。前のセクションで作成したコンソール プロジェクトでは、選択した構成によって、C:¥My Program¥TestProgram の下にターゲット ディレクトリが作成されます。このディレクトリには、.obj ファイル、中間ファイル、および実行可能ファイルが格納されます。

デフォルト構成は Win32 Debug です。この構成では、実行可能ファイルは C:¥My Programs¥TestProgram¥Debug ディレクトリに格納されます。デバッグ構成では、アプリケーションのデバッグを支援するデバッグ情報がコードに追加されます。デバッグ構成では、コードの最適化は行われません。Visual C++ がアプリケーションのために用意しているもう 1 つの構成は Win32 Release です。この構成は、コードの最適化設定を持っており、デバッグ情報は含んでいません。リリース構成でビルドされたコードは、C:¥My Programs¥TestProgram¥Release ディレクトリに格納されます。詳細については、MSDN ライブラリの "プロジェクト ワークスペースの要素" を参照してください。

リンカ (LINK.EXE) は、.obj ファイルとその他の中間ファイルを入力として受け取り、最終的な.exe を生成します。ビルド プロセスは、まずコンパイラを実行し、次にリンカを実行します。実行可能ファイルを生成するには、プロジェクトのビルドを行わなくてはなりません。ファイルのコンパイルだけを行うと、.obj ファイルが生成されます。

ビルド プロセスは次の図のように示すとわかりやすいでしょう (図 9)。

図 9. ビルド プロセスの図

図 10 のアウトプット ウィンドウは、ビルドの結果を示しています。

図 10. ビルドの結果を表示するアウトプット ウィンドウ
上の画像をクリックすると大きい画像を表示します。

この例では、TestProgram.exe 実行可能ファイルが C:¥My Programs¥TestProgram¥Debug ディレクトリに格納されています。

ビルドの結果は、.plg という拡張子を持つファイルにも格納されています。TestProgram プロジェクトでは、TestProgram.plg ファイルにこの情報が含まれています。詳細については、MSDN ライブラリの "コンパイルとリンク" を参照してください。


プロジェクトのクリーンとコピー

プロジェクトのクリーンを行うには、[ビルド] メニューの [クリーン] をクリックします。プロジェクトのクリーンを行うと、実行可能ファイルを含めて、ターゲット ディレクトリ (プロジェクトの構成によって、Debug ディレクトリと Release ディレクトリのどちらか) に含まれるすべてのファイルが削除されます。プロジェクトをフロッピー ディスクなどの別の場所に移すような場合には、プロジェクトのクリーンを行うといいでしょう。これにより、プロジェクトのサイズが減り、コピーが高速化されます。TestProgram プロジェクトの例では、ディレクトリ全体を別の位置にドラッグ アンド ドロップで移動することができます。クリーン後に実行可能ファイルを生成するには、再度ビルドを行う必要があります。


ビルド エラーのトラブルシューティング

コンパイラやリンカのエラーが発生する理由にはさまざまなものが考えられます。たとえば、正しいヘッダー ファイルがインクルードされていない、入力ミスがあった、コンパイラ/リンカ スイッチが正しく使われていなかったなどです。どのようなエラーであれ、エラーに関する情報はアウトプット ウィンドウに表示されます。

このセクションでは、この記事の 「Win32 コンソール アプリケーションの作成」 のセクションの操作を行って、すでに TestProgram プロジェクトを作成しているとします。次に、Test.cpp ファイルにわざと間違いを入れてみましょう。ファイルの内容を削除し、代わりに次のコードを入力します。

#include<stdio.h>

float ver;

void main()

{

      ver = 6.0;

      print("Welcome to Visual C++ %.1f¥n",ver); //printf を print に置き換えた

}


プロジェクトをビルドします。アウトプット ウィンドウには、図 11 に示すメッセージが表示されます。

図 11. アウトプット ウィンドウにエラーが表示されている様子
上の画像をクリックすると大きい画像を表示します。

このウィンドウは、Test.cpp ファイルの 8 行目でエラーが発生したことを示しています。この場所に移動するには、アウトプット ウィンドウでエラー メッセージをダブルクリックするか、F4 キーを押します。これは、特に大きなファイルを扱っている場合に便利な機能です。

個々のエラー番号は何らかの意味を持っています。これは Visual C++ のヘルプ システム (MSDN ライブラリ) で調べることができます。この例のエラーは C2065 です。このエラーの原因となるさまざまな理由を調べるには、次の操作を行います。

エラーの原因を調べるには

  1. マウスを使って、キーボード カレットをアウトプット ウィンドウの C2065 コンパイラ エラー コードの上に置きます。エラー コードの上でカレットが点滅していることを確認してください。正しいヘルプ トピックに移動できません。
  2. F1 キーを押します。
  3. C2065 に関しては、2 つのトピックがあります。『Visual C++ プログラマーズ ガイド』に含まれている方のトピックを選択してください。
    トピックが右側に表示されます。「識別子の名前が正しく入力されているかどうかを確認してください」という記述があり、これが原因だったことがわかります。

別の方法として、次の手順を実行しても同じ情報を得ることができます。

  1. Visual C++ で、[ヘルプ] メニューの [キーワード] をクリックします。
  2. [キーワードを入力してください] エディット ボックスに C2065 と入力します。
    この番号に対応するトピックがエディット ボックスの下のリスト ボックスに表示されます。
  3. C2065 トピックをダブルクリックします。
    C2065 に関しては、2 つのトピックがあります。
  4. 『Visual C++ プログラマーズ ガイド』に含まれている方のトピックを選択してください。
    トピックが右側に表示されます。「識別子の名前が正しく入力されているかどうかを確認してください」という記述があり、これが原因だったことがわかります。

printf に関する情報は、最初の行でインクルードされていた stdio.h ファイルに含まれています。stdio.h ファイルを開くと、"print" という名前の関数はないことがわかります。これが、コンパイラがエラーと判断した理由に他なりません。"print" という名前の関数が存在していたとしたら、コンパイル エラーは発生しなかったはずですが、実行可能ファイルの実行時の動作は予期しないものになった可能性があります。

エラー番号の情報は、必ず MSDN ライブラリで確認するようにしてください。MSDN Library Online は http://msdn2.microsoft.com/ja-jp/library/default.aspx でアクセスすることができます。


ワークスペースへの新しいプロジェクトと既存のプロジェクトの追加

以下のセクションでは、新しいプロジェクトを追加する方法と、既存のプロジェクトを追加する方法について説明します。


新しいプロジェクトの追加

既存のワークスペースに新しいプロジェクトを追加するには、TestProgram プロジェクトの作成 (「Win32 コンソール アプリケーションの作成」 を参照) で使ったステップを、以下の変更を加えて実行します。

  • [新規作成] ダイアログ ボックスで、[現在のワークスペースへ追加] オプションを選択します。
    新しいプロジェクトの位置がただちに変更されます。

たとえば、TestProgram プロジェクトに AnotherTestProgram という名前の新しいプロジェクトを追加する場合、[現在のワークスペースへ追加] を選択すると、パス は C:¥My Programs¥AnotherTestProgram から C:¥My Programs¥TestProgram¥AnotherTestProgram に変化します (図 12 を参照)。

図 12. 既存のワークスペースへの新しいプロジェクトの追加
上の画像をクリックすると大きい画像を表示します。


既存のプロジェクトの追加

既存のプロジェクトを追加するには、次の操作を行います。

既存のプロジェクトを追加するには

  1. [プロジェクト] メニューの [プロジェクトをワークスペースへ挿入] をクリックします。
  2. [ワークスペースへプロジェクトの挿入] ダイアログ ボックスで、挿入するプロジェクトを選択します。
    このステップでは、プロジェクトを表している DSP ファイルを参照して探します。

既存のプロジェクトに別のプロジェクトを追加した場合、ワークスペース ウィンドウにはすべてのプロジェクトが表示されます。たとえば、TestProgram プロジェクトに AnotherTestProgram プロジェクトを追加すると、FileView には両方のプロジェクトが表示されます (図 13)。

図 13. 既存のプロジェクトへの追加

AnotherTestProgram files が太字になっていることに注意してください。これは、このプロジェクトがアクティブ プロジェクトであることを示しています。ビルドを実行したときには、アクティブ プロジェクトがビルドされます。アクティブ プロジェクトを設定するには、[プロジェクト] メニューの [アクティブ プロジェクトに設定] サブメニューを使用します。

詳細については、MSDN ライブラリの "ホームページ : プロジェクトの操作" を参照してください。


ヒント

  • 以下の操作は避けてください。
    • フロッピー ディスク上にプロジェクトを直接作成し、ビルドする。ディスク スペースが足りなくなります。
    • 同じマシン上で、Visual C++ の 2 つの異なるインスタンスで同じプロジェクトを開く。
    • Visual C++ の.dsp および.dsw ファイルの削除や変更。Visual C++ がプロジェクトのために生成する初期ファイルの詳細については、MSDN ライブラリの "Visual C++ プロジェクトに対して作成されるファイルの種類" を参照してください。
  • Visual C++ には最新のサービス パックを適用してください。サービス パックは、次の場所からダウンロードまたは注文することができます: http://www.microsoft.com/japan/msdn/vstudio/
  • キーボード ショートカットの一覧を見るには、[ヘルプ] メニューの [キーボード マップ] を選択してください。

結論

この記事では、Visual C++ IDE のナビゲーションと、簡単な C/C++ プログラムの作成に関する基本的な概念を、わかりやすい例を使って説明しました。以下に、読者のために参考資料のリストを示します。この記事の目的は、初心者のプログラマが Visual C++ を使って C/C++ プログラムを作成しようとするときの最初の壁を突破することにあります。


関連情報

Visual C++ の最新の情報については、以下のリソースを参照してください。

C++ プログラミングの詳細については、以下の文献を参照してください。



この文書には、議論されている問題についての本文書の発行時点での Microsoft Corporation の見解が含まれています。変化するマーケット状況に対応する必要があるため、Microsoft は文書内の情報について責任を負うものではなく、発行日以降も情報が正しいことを保証するものではありません。

このホワイト ペーパーは、情報提供のみを目的としています。Microsoft は明示または黙示を問わず、本書において一切の保証を行いません。

Microsoft は Microsoft Corporation の登録商標です。

本書で言及している他の製品名または会社名は、各所有者の商標であることがあります。

Microsoft Corporation - One Microsoft Way - Redmond, WA 98052-6399 - USA