📢 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> | ||
< | <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); | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
< | <syntaxhighlight lang="c++"> | ||
// StaticLib.cpp | // StaticLib.cpp | ||
// ソースファイルでは、関数の具体的な実装を記述する | // ソースファイルでは、関数の具体的な実装を記述する | ||
| 99行目: | 101行目: | ||
return TRUE; | return TRUE; | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br><br> | <br><br> | ||
| 115行目: | 117行目: | ||
<br> | <br> | ||
実行ファイルのサンプルコードを以下に記述する。<br> | 実行ファイルのサンプルコードを以下に記述する。<br> | ||
< | <syntaxhighlight lang="c++"> | ||
// ExeStaticLib.cpp : アプリケーションのエントリ ポイントを定義します。 | // ExeStaticLib.cpp : アプリケーションのエントリ ポイントを定義します。 | ||
| 150行目: | 152行目: | ||
return 0; | return 0; | ||
} | } | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
このプログラムの実行例を以下に示す。<br> | このプログラムの実行例を以下に示す。<br> | ||