チュートリアル: スタティック ライブラリの作成と使用 (C++)

このチュートリアルでは、C++ の apps で使用するためのスタティック ライブラリ (.lib) ファイルを作成する方法を示します。スタティック ライブラリを使用してコードを有効に再利用できます。機能を必要とするすべてのアプリケーションで同じルーチンを再実装するのではなく、スタティック ライブラリに 1 回を書き込み、apps から参照します。スタティック ライブラリ アプリケーションからリンクされたコードは、の一部にコードを使用する別ファイルをインストールする必要はありませんが、なります。

このチュートリアルでは、これらのタスクに対応します:

必須コンポーネント

C++ 言語の基本を理解。

スタティック ライブラリ プロジェクトを作成するには

  1. メニュー バーで [ファイル][新規][プロジェクト] の順にクリックします。

  2. [新しいプロジェクト] のダイアログ ボックスの左ペインで、[インストール済み][テンプレート][Visual C++] を展開し、[win32] を選択します。

  3. 中央のペインで、を選択 [Win32 コンソール アプリケーション]

  4. ボックス [名前] MathFuncsLib の例のプロジェクトの名前を指定します。ボックス [ソリューション名] StaticLibrary の例のソリューションの名前を指定します。[OK] を選択します。

  5. [Win32 アプリケーション ウィザード] のダイアログ ボックスの [概要] のページで、[次へ] のボタンをクリックします。

  6. [アプリケーションの設定] のページ、[アプリケーションの種類] の[ [スタティック ライブラリ.]

  7. [アプリケーションの設定] のページ、[追加のオプション] の下に [プリコンパイル済みヘッダー] のチェック ボックスをオフにします。

  8. プロジェクトを作成するには [完了] のボタンをクリックします。

スタティック ライブラリにクラスを追加するには

  1. 新しいクラスのヘッダー ファイルを作成するには、[ソリューション エクスプローラー] の MathFuncsLib のプロジェクトのショートカット メニューを開き、[追加][新しいアイテム] を選択します。[新しい項目の追加] のダイアログ ボックスの左ペインで、[Visual C++] の[ [コード]。中央のペインで、を選択 [ヘッダー ファイル (.h)]。名前をこのファイルのヘッダーにを指定します。次に、MathFuncsLib.h と [追加] のボタンをクリックします。空白のヘッダー ファイルが表示されます。

  2. MyMathFuncs という名前の加算、減算、乗算、N/A などの一般的な数値演算を行うためにクラスを追加します。コードは次のようになります。:

    // MathFuncsLib.h
    
    namespace MathFuncs
    {
        class MyMathFuncs
        {
        public:
            // Returns a + b
            static double Add(double a, double b);
    
            // Returns a - b
            static double Subtract(double a, double b);
    
            // Returns a * b
            static double Multiply(double a, double b);
    
            // Returns a / b
            static double Divide(double a, double b);
        };
    }
    
  3. 新しいクラスのソース ファイルを作成するには、[ソリューション エクスプローラー] の MathFuncsLib のプロジェクトのショートカット メニューを開き、[追加][新しいアイテム] を選択します。[新しい項目の追加] のダイアログ ボックスの左ペインで、[Visual C++] の[ [コード]。中央のペインで、[C++ ファイル (.cpp)] を選択します。名前をこのファイルのソースとして指定します。次に、MathFuncsLib.cpp と [追加] のボタンをクリックします。空のソース ファイルが表示されます。

  4. MyMathFuncs の機能を実装するために、このソース ファイルを使用します。コードは次のようになります。:

    // MathFuncsLib.cpp
    // compile with: /c /EHsc
    // post-build command: lib MathFuncsLib.obj
    
    #include "MathFuncsLib.h"
    
    #include <stdexcept>
    
    using namespace std;
    
    namespace MathFuncs
    {
        double MyMathFuncs::Add(double a, double b)
        {
            return a + b;
        }
    
        double MyMathFuncs::Subtract(double a, double b)
        {
            return a - b;
        }
    
        double MyMathFuncs::Multiply(double a, double b)
        {
            return a * b;
        }
    
        double MyMathFuncs::Divide(double a, double b)
        {
            return a / b;
        }
    }
    
  5. [ビルド]、メニュー バーの [ソリューションのビルド] のをクリックし、スタティック ライブラリをコンパイルします。これにより、他のプログラムで使用できるスタティック ライブラリが作成されます。

    [!メモ]

    Visual Studio コマンド ラインでビルドする場合、は 2 ステップでプログラムをビルドする必要があります。最初に、コードをコンパイルし、MathFuncsLib.obj という名前のオブジェクト ファイルを作成する実行 cl /c /EHsc MathFuncsLib.cpp。(cl のコマンドは、Cl.exe コンパイラを起動し、オプションはコンパイル /c のリンクを指定します。詳細については、「/c (リンクを行わないコンパイル)」を参照してください。第 2 に、コードをリンクし、スタティック ライブラリ MathFuncsLib.lib を作成する実行 lib MathFuncsLib.obj。(lib のコマンドは、Lib.exe ライブラリ マネージャーを起動します。詳細については、「LIB リファレンス」を参照してください。

C++.プロジェクトを作成するには、スタティック ライブラリを参照するコンソール アプリケーションをします

  1. メニュー バーで [ファイル][新規][プロジェクト] の順にクリックします。

  2. 左ペインで、[Visual C++] の[ [win32]

  3. 中央のペインで、を選択 [Win32 コンソール アプリケーション]

  4. ボックス [名前] MyExecRefsLib の例のプロジェクトの名前を指定します。[ソリューション] の横のドロップダウン リストで、を選択 [ソリューションに追加]。これにより、スタティック ライブラリを含むソリューションに新しいプロジェクトを追加します。[OK] を選択します。

  5. [Win32 アプリケーション ウィザード] のダイアログ ボックスの [概要] のページで、[次へ] のボタンをクリックします。

  6. [アプリケーションの設定] のページ、[アプリケーションの種類] の[ [コンソール アプリケーション]

  7. [アプリケーションの設定] のページ、[追加のオプション] の下に [プリコンパイル済みヘッダー] のチェック ボックスをオフにします。

  8. プロジェクトを作成するには [完了] のボタンをクリックします。

スタティック ライブラリの機能をアプリケーションで使用するには

  1. コンソール アプリケーションを作成すると、空のプログラムが作成されます。ソース ファイルの名前は、以前に選択した名前と同じです。この例では、" MyExecRefsLib.cpp "を説明しました。

  2. スタティック ライブラリで数値演算ルーチンを使用するには、ファイルを参照する必要があります。これを行うには、[ソリューション エクスプローラー] の MyExecRefsLib のプロジェクトのショートカット メニューを開き、[参照] を選択します。[プロパティ ページ] MyExecRefsLib のダイアログ ボックスで、[共通プロパティ] ノード、[ [Framework と参照] を展開し、[新しい参照の追加] のボタンをクリックします。[参照設定] ダイアログ ボックスの詳細については、「[Framework と参照] ([<プロジェクト名> プロパティ ページ] ダイアログ ボックス - [共通プロパティ])」を参照してください。

  3. [参照の追加] のダイアログ ボックスには、参照できるライブラリが表示されます。含むこと [プロジェクト] タブの現在のソリューションのプロジェクトおよびプロジェクト ライブラリが一覧表示されます。[プロジェクト] のタブで、MathFuncsLib のチェック ボックスをオンにし、[OK] のボタンをクリックします。

  4. MathFuncsLib.h ヘッダー ファイルを参照するには、インクルード ディレクトリ パスを変更する必要があります。MyExecRefsLib の [プロパティ ページ] のダイアログ ボックスで、[構成プロパティ] のノードを展開し、[C/C++] のノードを展開し、を [全般] を選択します。[追加のインクルード ディレクトリ] の横に、MathFuncsLib.h ディレクトリのパスを指定するか、それを参照します。

    ディレクトリ パスを参照するには、プロパティ値のドロップダウン リストを開き、[編集] を選択します。[追加のインクルード ディレクトリ] のダイアログ ボックスのボックスに、空白行を選択し、行の末尾にある省略記号ボタン ([…]) を選択します。[ディレクトリの選択] のダイアログ ボックスで、MathFuncsLib ディレクトリを選択し、オプションを保存し、ダイアログ ボックスを閉じるに [フォルダーの選択] のボタンをクリックします。次に [追加のインクルード ディレクトリ] のダイアログ ボックスで、[プロパティ ページ] のダイアログ ボックスの [OK] のボタンを、プロジェクトへの変更を保存するか選択します [OK] のボタンをクリックします。

  5. このアプリケーションで、MyMathFuncs クラスを使用できます。これを行うには、このコードと MyExecRefsLib.cpp の内容を置き換えます。:

    // MyExecRefsLib.cpp
    // compile with: /EHsc /link MathFuncsLib.lib
    
    #include <iostream>
    
    #include "MathFuncsLib.h"
    
    using namespace std;
    
    int main()
    {
        double a = 7.4;
        int b = 99;
    
        cout << "a + b = " <<
            MathFuncs::MyMathFuncs::Add(a, b) << endl;
        cout << "a - b = " <<
            MathFuncs::MyMathFuncs::Subtract(a, b) << endl;
        cout << "a * b = " <<
            MathFuncs::MyMathFuncs::Multiply(a, b) << endl;
        cout << "a / b = " <<
            MathFuncs::MyMathFuncs::Divide(a, b) << endl;
    
        return 0;
    }
    
  6. [ビルド]、メニュー バーの [ソリューションのビルド] を選択して実行可能ファイルをビルドします。

アプリケーションを実行するには

  1. MyExecRefsLib が [ソリューション エクスプローラー] の MyExecRefsLib のショートカット メニューを開くこと、および [スタートアップ プロジェクトに設定] を選択して、既定のプロジェクトとして選択されていることを確認します。

  2. プロジェクトを、メニュー バーで実行するには、[デバッグ][デバッグなしで開始] を選択します。出力は、次のようになります。

a + b = 106.4 a-b *、= -91.6 b = 732.6 a と b = 0.0747475

参照

処理手順

Visual C++ Guided Tour

チュートリアル: ダイナミック リンク ライブラリの作成と使用 (C++)

概念

Win32 デスクトップ アプリケーション (Visual C++)