チュートリアル: スタティック ライブラリの作成と使用 (C++)
このチュートリアルでは、C++ の apps で使用するためのスタティック ライブラリ (.lib) ファイルを作成する方法を示します。スタティック ライブラリを使用してコードを有効に再利用できます。機能を必要とするすべてのアプリケーションで同じルーチンを再実装するのではなく、スタティック ライブラリに 1 回を書き込み、apps から参照します。スタティック ライブラリ アプリケーションからリンクされたコードは、の一部にコードを使用する別ファイルをインストールする必要はありませんが、なります。
このチュートリアルでは、これらのタスクに対応します:
必須コンポーネント
C++ 言語の基本を理解。
スタティック ライブラリ プロジェクトを作成するには
メニュー バーで [ファイル]、[新規]、[プロジェクト] の順にクリックします。
[新しいプロジェクト] のダイアログ ボックスの左ペインで、[インストール済み]、[テンプレート]、[Visual C++] を展開し、[win32] を選択します。
中央のペインで、を選択 [Win32 コンソール アプリケーション]。
ボックス [名前] MathFuncsLib の例のプロジェクトの名前を指定します。ボックス [ソリューション名] StaticLibrary の例のソリューションの名前を指定します。[OK] を選択します。
[Win32 アプリケーション ウィザード] のダイアログ ボックスの [概要] のページで、[次へ] のボタンをクリックします。
[アプリケーションの設定] のページ、[アプリケーションの種類] の[ [スタティック ライブラリ.]
[アプリケーションの設定] のページ、[追加のオプション] の下に [プリコンパイル済みヘッダー] のチェック ボックスをオフにします。
プロジェクトを作成するには [完了] のボタンをクリックします。
スタティック ライブラリにクラスを追加するには
新しいクラスのヘッダー ファイルを作成するには、[ソリューション エクスプローラー] の MathFuncsLib のプロジェクトのショートカット メニューを開き、[追加]、[新しいアイテム] を選択します。[新しい項目の追加] のダイアログ ボックスの左ペインで、[Visual C++] の[ [コード]。中央のペインで、を選択 [ヘッダー ファイル (.h)]。名前をこのファイルのヘッダーにを指定します。次に、MathFuncsLib.h と [追加] のボタンをクリックします。空白のヘッダー ファイルが表示されます。
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); }; }
新しいクラスのソース ファイルを作成するには、[ソリューション エクスプローラー] の MathFuncsLib のプロジェクトのショートカット メニューを開き、[追加]、[新しいアイテム] を選択します。[新しい項目の追加] のダイアログ ボックスの左ペインで、[Visual C++] の[ [コード]。中央のペインで、[C++ ファイル (.cpp)] を選択します。名前をこのファイルのソースとして指定します。次に、MathFuncsLib.cpp と [追加] のボタンをクリックします。空のソース ファイルが表示されます。
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; } }
[ビルド]、メニュー バーの [ソリューションのビルド] のをクリックし、スタティック ライブラリをコンパイルします。これにより、他のプログラムで使用できるスタティック ライブラリが作成されます。
[!メモ]
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++.プロジェクトを作成するには、スタティック ライブラリを参照するコンソール アプリケーションをします
メニュー バーで [ファイル]、[新規]、[プロジェクト] の順にクリックします。
左ペインで、[Visual C++] の[ [win32]。
中央のペインで、を選択 [Win32 コンソール アプリケーション]。
ボックス [名前] MyExecRefsLib の例のプロジェクトの名前を指定します。[ソリューション] の横のドロップダウン リストで、を選択 [ソリューションに追加]。これにより、スタティック ライブラリを含むソリューションに新しいプロジェクトを追加します。[OK] を選択します。
[Win32 アプリケーション ウィザード] のダイアログ ボックスの [概要] のページで、[次へ] のボタンをクリックします。
[アプリケーションの設定] のページ、[アプリケーションの種類] の[ [コンソール アプリケーション]。
[アプリケーションの設定] のページ、[追加のオプション] の下に [プリコンパイル済みヘッダー] のチェック ボックスをオフにします。
プロジェクトを作成するには [完了] のボタンをクリックします。
スタティック ライブラリの機能をアプリケーションで使用するには
コンソール アプリケーションを作成すると、空のプログラムが作成されます。ソース ファイルの名前は、以前に選択した名前と同じです。この例では、" MyExecRefsLib.cpp "を説明しました。
スタティック ライブラリで数値演算ルーチンを使用するには、ファイルを参照する必要があります。これを行うには、[ソリューション エクスプローラー] の MyExecRefsLib のプロジェクトのショートカット メニューを開き、[参照] を選択します。[プロパティ ページ] MyExecRefsLib のダイアログ ボックスで、[共通プロパティ] ノード、[ [Framework と参照] を展開し、[新しい参照の追加] のボタンをクリックします。[参照設定] ダイアログ ボックスの詳細については、「[Framework と参照] ([<プロジェクト名> プロパティ ページ] ダイアログ ボックス - [共通プロパティ])」を参照してください。
[参照の追加] のダイアログ ボックスには、参照できるライブラリが表示されます。含むこと [プロジェクト] タブの現在のソリューションのプロジェクトおよびプロジェクト ライブラリが一覧表示されます。[プロジェクト] のタブで、MathFuncsLib のチェック ボックスをオンにし、[OK] のボタンをクリックします。
MathFuncsLib.h ヘッダー ファイルを参照するには、インクルード ディレクトリ パスを変更する必要があります。MyExecRefsLib の [プロパティ ページ] のダイアログ ボックスで、[構成プロパティ] のノードを展開し、[C/C++] のノードを展開し、を [全般] を選択します。[追加のインクルード ディレクトリ] の横に、MathFuncsLib.h ディレクトリのパスを指定するか、それを参照します。
ディレクトリ パスを参照するには、プロパティ値のドロップダウン リストを開き、[編集] を選択します。[追加のインクルード ディレクトリ] のダイアログ ボックスのボックスに、空白行を選択し、行の末尾にある省略記号ボタン ([…]) を選択します。[ディレクトリの選択] のダイアログ ボックスで、MathFuncsLib ディレクトリを選択し、オプションを保存し、ダイアログ ボックスを閉じるに [フォルダーの選択] のボタンをクリックします。次に [追加のインクルード ディレクトリ] のダイアログ ボックスで、[プロパティ ページ] のダイアログ ボックスの [OK] のボタンを、プロジェクトへの変更を保存するか選択します [OK] のボタンをクリックします。
このアプリケーションで、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; }
[ビルド]、メニュー バーの [ソリューションのビルド] を選択して実行可能ファイルをビルドします。
アプリケーションを実行するには
MyExecRefsLib が [ソリューション エクスプローラー] の MyExecRefsLib のショートカット メニューを開くこと、および [スタートアップ プロジェクトに設定] を選択して、既定のプロジェクトとして選択されていることを確認します。
プロジェクトを、メニュー バーで実行するには、[デバッグ]、[デバッグなしで開始] を選択します。出力は、次のようになります。
a + b = 106.4 a-b *、= -91.6 b = 732.6 a と b = 0.0747475
参照
処理手順
チュートリアル: ダイナミック リンク ライブラリの作成と使用 (C++)