「ライブラリの基礎 - スタティックライブラリの作成(C/C++/MFC)」の版間の差分

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

ページの作成:「== 概要 == スタティックライブラリ(静的ライブラリ)は、ソフトウェアに静的にリンクされるライブラリで、ソフトウェアのビ…」
 
文字列「/source」を「/syntaxhighlight」に置換
 
(同じ利用者による、間の3版が非表示)
7行目: 7行目:
<br>
<br>
また、DLLでは、実行時にLoadLibrary関数により、公開関数のロードおよび実行ができるが、スタティックライブラリでは、そのようなことはできない。<br>
また、DLLでは、実行時にLoadLibrary関数により、公開関数のロードおよび実行ができるが、スタティックライブラリでは、そのようなことはできない。<br>
<br>
ここでは、実際に、Visual Studioを使用してスタティックライブラリを作成する。<br>
<br><br>
<br><br>


21行目: 23行目:
DLLと違って、スタティックライブラリでは、モジュール定義ファイル(.defファイル)やexport宣言は不要である。<br>
DLLと違って、スタティックライブラリでは、モジュール定義ファイル(.defファイル)やexport宣言は不要である。<br>
つまり、グローバルな関数は全て公開される。<br>
つまり、グローバルな関数は全て公開される。<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  // StaticLib.h
  // StaticLib.h
  // ヘッダファイルでは関数のプロトタイプを宣言する
  // ヘッダファイルでは関数のプロトタイプを宣言する
32行目: 34行目:
  extern "C" int GetLogicalDriveCount();
  extern "C" int GetLogicalDriveCount();
  extern "C" BOOL GetLogicalDriveString(int, LPWSTR, int);
  extern "C" BOOL GetLogicalDriveString(int, LPWSTR, int);
  </source>
  </syntaxhighlight>
<br>
<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  // StaticLib.cpp
  // StaticLib.cpp
  // ソースファイルでは、関数の具体的な実装を記述する
  // ソースファイルでは、関数の具体的な実装を記述する
99行目: 101行目:
     return TRUE;
     return TRUE;
  }
  }
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


115行目: 117行目:
<br>
<br>
実行ファイルのサンプルコードを以下に記述する。<br>
実行ファイルのサンプルコードを以下に記述する。<br>
  <source lang="c++">
  <syntaxhighlight lang="c++">
  // ExeStaticLib.cpp : アプリケーションのエントリ ポイントを定義します。
  // ExeStaticLib.cpp : アプリケーションのエントリ ポイントを定義します。
   
   
150行目: 152行目:
     return 0;
     return 0;
  }
  }
  </source>
  </syntaxhighlight>
<br>
<br>
このプログラムの実行例を以下に示す。<br>
このプログラムの実行例を以下に示す。<br>