Visual Studio Express 2008 でメイン関数に入る前に、Visual C++ プログラムはどのように dll をロードしますか? 他の人が開発したプロジェクトでは、「a.ext:native」によって dll が読み込まれましたが、これがどのように構成されているかわかりません。
1240 次
1 に答える
2
DLL をロードするように OS に指示するには、さまざまな方法があります。最も一般的な方法は、(プロジェクトのリンカー設定を使用して) .lib ファイルにリンクすることです。.lib は、DLL に関連付けられたビルド時のスタブです。リンカーは、リンク段階でこの .lib ファイルを見つけると、DLL が必要であることを認識し、EXE を内部的に変更して、プログラムを実行するために DLL が存在する必要があることをオペレーティング システムに伝えます。
プログラムが後で実行されると、オペレーティング システムは、プログラムのコードの実行を開始する前であっても、必要なすべての DLL を最初に検索します。これらの DLL のいずれかが見つからない場合、オペレーティング システムはエラーをスローし、エラー ボックスが表示され、プログラムは実行されません。
DLL を動的にロードすることも可能ですが、これはそれほど一般的ではありません。
于 2012-04-17T03:45:04.077 に答える