DLL(1)

◇基本知識

・DLL → Dynamic Link Library
任意の機能をプログラムから呼び出せる仕組みです
・DLLは実行時にリンクされので、更新時には、DLLの上書きだけで、アプリの再コンパイルが不要
・DLLを使う方法は2種類ある:
 ■暗黙的リンク →
  DLLが提供している関数が定義されているヘッダファイルとライブラリファイル(lib)を使用
  リンカ上で、DLLのリンクを設定し、コード上DLLの存在を意識せずにDLLを使用する方法。


#pragma comment(lib, "libファイル名")

 ■明示的リンク →
  LIBを使わずに、アプリケーションが必要な時にDLLを読み込み、
  使いたい関数(アドレス)を取得して使用
  コード上で、DLLのハンドルを取得して、そこから関数ポインタを取得する方法。
  読み出すDLLや関数を動的に変更できる。


LoadLibrary,GetProcAddress,FreeLibrary

・リンクについて:
 →.cpp(ソースファイル)→コンパイル→.obj→リンク→.exe(実行ファイル)


C++でDLLの作成
・分類
 Win32DLL
 MFCDLL
 → レギュラーDLL:MFCを内部的に利用するDLL
   拡張DLL:MFCライブラリクラスから派生したクラスをDLLを作成する
時に使うDLL
・作成
VC++.NETでも、旧来の形式のDLLを作ることは出来る)

1. 「新しいプロジェクト」ダイアログを開く
2. 「プロジェクトの種類(P)」ペインで「Visual C++ プロジェクト」⇒「Win32」を選択
3. 「テンプレート(T)」ペインで「Win32 プロジェクト」を選択
4. プロジェクト名を入力を入力
5. 「Win32 アプリケーション ウィザード」ダイアログで「アプリケーションの設定」を選び、「アプリケーションの種類」は「DLL(D)」を選択
6. (「追加のオプション」の「空のプロジェクト(E)」にチェック)
7. 「完了」ボタンを押す。

・参考サイト:
http://hp.vector.co.jp/authors/VA019517/howtodll.html