dポイントプレゼントキャンペーン実施中!

ある EXE(DLL) に暗黙リンクされている複数の DLL があるとき、これらの DLL がロードされる順番はどのようにして設定できるのでしょうか?
具体的には EXE を起動したときに、暗黙リンクされているシステム DLL がロードされるより前に、自作の DLL をロードしたいのです。
よろしくお願いします。

A 回答 (2件)

リンカに指定した順みたいですね。

    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2004/11/28 17:49

> EXE を起動したときに、暗黙リンクされているシステム DLL がロードされるより前に、自作の DLL をロードしたいのです。



DLLのロード順は、

1. 実行可能ファイル (EXE) を含むディレクトリ
2. カレント ディレクトリ
3. Microsoft(R) Windows NT(R) の場合 Windows の 32 ビット システム ディレクトリ (通常は \WINNT35\SYSTEM32)
Windows の 16 ビット システム ディレクトリ (通常は \WINNT35\SYSTEM)

Microsoft(R) Windows(R) 95 の場合 Windows のシステム ディレクトリ (通常は \WINDOWS\SYSTEM)
4. Windows ディレクトリ (通常は \WINNT35 または \Windows)
5. 環境変数 PATH に設定されているディレクトリ

408409 [VB4] DLL が読み込めない原因と対処方法
http://support.microsoft.com/default.aspx?scid=k …

となっていますので、EXEと同じ場所に自作DLLを置いておけば、そちらがロードされるハズ。

もっと汎用のWindows起動後にロードされるようなDLLがDLLキャッシュなどから読まれている場合には…ちょっとわかりません。

参考URL:http://support.microsoft.com/default.aspx?scid=k …

この回答への補足

ええと、DLL のパスの検索順ではなく、リンクされている DLL のロード順ということです。
A.EXE に B.DLL, C.DLL がリンクされているときに、必ず B.DLL が先にロードされるようにしたいということなのです。

補足日時:2004/11/25 20:33
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!