DLLまとめ 01 DLLの概要、利点、作成
DLLの簡単なまとめです。
DLLの概要、利点、作成について
DLLの概要
DLLは、Dynamic Link Libraryの略称で、その名の通り動的にリンクされるライブラリです。
DLLの利点
DLLを複数のプロセスで共有できるため、メモリ領域とディスク領域を節約できます。
DLLを更新することで、再コンパイルや再リンクをすることなくプログラムの挙動を変更できます。
DLLの作成
まずはDLLを作成するためのプロジェクトを作成します。win32プロジェクトを選択し、アプリケーションの種類はDLLにします。
空のプロジェクトを選択しないとDLLMainの雛形などが作成されます。不要なら空のプロジェクトを選択します。
今回は空のプロジェクトを選択し、関数をDLLからエクスポートする場合を考えます。
ヘッダファイルには下のように記述をします。
/******************************************************************* myDLL.h *******************************************************************/ #define EXPORT extern "C" __declspec(dllexport) EXPORT void __stdcall test();
実装は下のようにします。
/******************************************************************* myDLL.cpp *******************************************************************/ #include <iostream> using namespace std; #include "myDLL.h" EXPORT void __stdcall test() { cout << "Hello World" << endl; }
"Hello World"と出力するだけの関数です。これをビルドすると、DLLとlibファイルが作成されます。
extern "C"は、名前マングルを避けるために記述します。
__declspec(dllexport)はエクスポートしたい関数、変数、クラスに指定します。
__declspec(dllexport)が指定されたシンボルは、libファイルとDLLのエクスポートされるシンボルのリストに組み込まれます。Visual Studioのコマンドプロンプトからdumpbin.exeを呼び出すことで確認できます。
dumpbin.exe myDLL.dll -exports dumpbin.exe myDLL.lib -exports
のように入力します。
参考書籍
ADVANCED WINDOWS 第5版 下 (マイクロソフト公式解説書)
- 作者: Jeffrey Richter,Christophe Nasarre,(株)クイープ
- 出版社/メーカー: 日経BP社
- 発売日: 2008/10/23
- メディア: 単行本
- 購入: 8人 クリック: 32回
- この商品を含むブログ (14件) を見る