最終更新:2017-12-08 (金) 11:26:35 (2324d)  

暗黙的リンク
Top / 暗黙的リンク

暗黙的(静的)リンク

https://msdn.microsoft.com/ja-jp/library/d14wsce5.aspx

メモ

  • プロセスがDLLに実装されている関数を呼び出す場合は、 そのDLLをアドレス空間にマッピングしていなければなりません。 この作業も、プロセスの開始と共にローダが行っています。 EXEファイルには、インポートセクション?と呼ばれるセクション(データ領域)が含まれています。 このセクションには、EXEがインポート(使用、取り込む)している関数が列挙されており、 その関数をエクスポートしているDLLも列挙されます。
  • ローダは、これらのDLLをアドレス空間にマッピングします。 また、DLLが内部で別のDLLによってエクスポートされている関数を呼び出している場合は、 それらのDLLもマッピングされることになります。 このように、DLLを動的にマッピングすることをダイナミックリンクと呼び、 特にアプリケーションの実行時にマッピングされることを暗黙的リンクと呼びます。

DLLと暗黙的にリンクするには、実行形式は、DLL の提供元から以下のファイルを取得する必要があります。

  • エクスポート関数の宣言や C++ クラスの宣言を含むヘッダー ファイル (.h ファイル)。クラス、関数、およびデータにはすべて__declspec(dllimport) を設定する必要があります。
  • リンク先のインポート ライブラリ (.LIB ファイル)。リンカーは、DLLのビルド時にインポート ライブラリを作成します。
  • 実際のDLL (.dll?ファイル)

関連

参考