VC++でのDLLの明示的(動的)リンクの方法について追加。
defファイルを作るのが面倒だったので暗黙的(静的)リンクしかやってなくて、
今回明示的(動的)リンクをやってみて『序数』というものの存在を知り、
するとdefファイルが重要だということが分かった(汗)
それにしても「暗黙的リンク」という言葉には騙されていた(爆)
「リンク」と言えばリンカーで行う作業だと思っていたので、
明示的リンク→リンカーでlibファイルを指定する方法(リンク時に決まるので、静的)
暗黙的リンク→リンカーでlibファイルを指定しない方法(実行時に決まるので、動的)
だと勘違いしていた……動的・静的は合ってると思うんだけど。
実際はDLLのロードのことを、Dynamic Link Library:あくまでライブラリなので、実行時であってもリンクと言う、のかなぁ…。
暗黙的リンク→実行時に自動的(暗黙)にDLLがロードされる
明示的リンク→DLLのロードをプログラマーが(明示的に)コーディングする
ちなみに自分の感触としては、基本的には暗黙的(静的)リンクを使う方が(コンパイル・リンク時点のチェックがしやすいから)よくて、仕様的に明示的(動的)リンクしか出来ない場合は動的リンクを使うのが良さそう。
この辺りのことをDLLの補足としてまとめてみた。
※コメント投稿者のブログIDはブログ作成者のみに通知されます