アプリケーションが参照するDLLファイル
Aragoが使用するDLLファイルは、OSにより探し方が異なるようです。
カレント ディレクトリ |
\Windows ディレクトリ |
\Windows\System ディレクトリ |
\Windows\System32 |
現在タスクの 実行ファイルのある ディレクトリ |
環境変数Path ディレクトリ |
||
Windows3.1 | 1 | 2 | 3 | 4 | 5 | ||
Windows95 | 2 | 4 | 3 | 1 | 5 | ||
WindowsNT Windows2000 |
2 | 5 | 4 | 3 | 1 | 6 | |
Windows XP | 4 | 3 | 2 | 1 | 5 |
ネットで調べたものを表にして見ました。
ここで問題なのは、XPの場合アプリケーションEXEと同じ場所にDLLを配置しておいても、windows配下の同名DLLを先に呼んでしまう事です。
読みの順番を変更することで解決するそうですが、かなり危険な方法かも知れません。
これで、検索順番がカレントフォルダ→System32→System→Windowsフォルダという順番に変更されました。元に順番に戻す時は値のデータを「1」にすればOKです。
もうひとつの方法として、インストールセットを作成する際に特定のEXEに対してのDLLを明示する方法があるそうです。XPは同一名称のDLLを同時に使用する(メモリー上に同名のDLLが複数読み込まれる)状態を許可しているそうなので、XP用のインストールセットを用意することで発展的解決となりそうです。
この方法に対応したソフトについては見つかり次第、ご紹介したいと思います。