• 締切済み

WindowsXPにおけるDLLの検索順序

WindowsXPにおいて、DLLの検索順序を変えたいの ですが、どなたかご存知でしょうか? アプリケーションのあるディレクトリを先にして、 カレントディレクトリを後にしたいのです。 ちなみにレジストリ値"SafeDllSearchMode"では うまくいきませんでした。よろしくお願いいたします。

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_loadlibrary.htm 1番最初はアプリのあるフォルダなんですけど。 内部的にフルパスでロードするDLLが指定されている場合は、Side by SideのDLL/COM リダイレクションでOKかと。 hogehoge.exeがおいてあるフォルダに、hogehoge.exe.localという空ファイルを作成してください。 http://www.microsoft.com/japan/msdn/windows/windows2000/sidebyside.asp

参考URL:
http://www.microsoft.com/japan/msdn/windows/windows2000/sidebyside.asp
AGRESS
質問者

お礼

遅くなりましたが、回答ありがとうございました。 御指摘の方法を試してみましたが、うまく動作 しませんでした。調べたところ、必ずしも御指摘 の方法が動作するとは限らないようです。 http://niseko.or.jp/blogX2/PermaLink.aspx/0c0ee4bb-e5da-4760-b141-5cceedd194c1

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.2

手間ですが… アプリケーション(exe)のショートカットを作成し、ショートカットの「実行時のディレクトリ」にアプリケーションのあるディレクトリを指定では? 指定した場所がカレントディレクトリになるハズ。

AGRESS
質問者

お礼

遅くなりましたが、回答ありがとうございます。 No.1様への補足の通り、御指摘の方法では実現 することができませんでした。

  • Tsan
  • ベストアンサー率20% (184/909)
回答No.1

Windowsの決まりがあるので早々変えることはできないと思いましたが。 実行ファイル(app.exe)と同じディレクトリが最優先だった気がします。 #ショートカットの実行パスが相対記述だったときは怪しいかも。。。 Windowsのシステムファイルを使用している場合アプリケーション側で特定のバージョンを使用するように指定されている可能性があります。(WinSxSという技術のようです。) 参考は http://memo.windy.ac/archives/000284.html http://d.hatena.ne.jp/NyaRuRu/20040931#p2

参考URL:
http://memo.windy.ac/archives/000284.html
AGRESS
質問者

お礼

遅くなりましたが、回答ありがとうございました。 補足に書きました通り、御指摘の方法では実現する ことはできませんでした。

AGRESS
質問者

補足

みなさま、早速の回答ありがとうございます。 説明が足りなかったようなので、補足いたします。 VB.NET 2003で作成した、Aディレクトリにあるa.exeから、Shell関数で、Bディレクトリに あるb.exeを呼び出すようなプログラムを作成したのですが、a.exeおよびb.exeの両方から c.dllを使用しています。このc.dllがマルチプロセス対応ではないdllで(私が作成したも のではなく、メーカー製のものです)a.exeからc.dllを呼び出した後にb.exeからc.dll呼び 出そうとすると、「dllがみつからない」というエラーになってしまいます。c.dllはAディ レクトリにもBディレクトリにも格納しているのですが、b.exeからはBディレクトリの c.dllではなく、呼び出し元であるa.exeのあるAディレクトリのものを呼び出しているよう です。そこで、a.exeはAディレクトリの、b.exeはBディレクトリのdllを呼び出せばいいの ではないか?という推測のもとに、上記の質問をした次第です。 回答を頂いた内容ををもとに、23日に実際に行ってみますので、お礼はその際にさせて 頂きたいと思います。

関連するQ&A

  • dllが見つからないのですが・・・

    いつもお世話になります。 今回、VBで簡単なアプリケーションを作成しています。 そのなかで「a.dll」を使おうとしているのですが、「a.dllが見つかりません」とのエラーが出てしまいます。 現在、テストとしてwin2000で動かしています。このdllを"WINNT\system32"やこのアプリのあるディレクトリにコピーしてみたのですがそれでも見つからないのです。なにか原因があるのでしょうか?

  • スタートアップのプログラム実行順序を任意に変えるには?

    Windows98SE において、スタートアップフォルダに登録されているプログラムの実行順序は、何によって決定されているのでしょうか? レジストリ? INI ファイル? スタートアップフォルダ内のディレクトリエントリ順? また、この実行順序を任意に変えたいのですが、どうすればできるでしょうか? そういう機能を提供するオンラインソフトがあるのは知っていますが、条件としてそういう外部ソフトを*一切使わず*、レジストリや INI ファイル、またはディレクトリエントリの編集等、Windows の基本機能の範囲だけで実現したいのです。 ご存じのかた、よろしくお願いします。

  • 「imjp81k.dll」が見つからない、というメッセージが出てしまい

    「imjp81k.dll」が見つからない、というメッセージが出てしまいます。 新しく購入したPC(Windows7)に、今まで使っていたPC(WindowsXP SP3)から「パソコン引越し7」というソフトでデータの移行をしました。 新しいほうのPCを起動するたびに、「imjp81k.dll」が見つからないためアプリケーションの起動に失敗しましたというメッセージが出ます。アプリケーションを何も起動していなくてもメッセージは出ました。「imjp81k.dll」という名でマイクロソフトのサイトを検索しましたらWindowsXPのページにあり、Windows7では使っていないファイル?みたいでした。 すみません、ここまでしか調べてもわかりませんでした。どのアプリケーションで使うものなのかもわかりません。 メッセージが出ないようにするにはどうすれば良いですか。 「プログラムのアンインストールまたは変更」を見てみても、「WinXPはすでに削除されています。一覧から削除しますか」と出ましたので削除しました。 何かご存知でしたら教えてください。よろしくお願いします。

  • WindowsXPでIE6にて「お気に入り」からの表示や検索ができない

    WindowsXPでIE6にて「お気に入り」からの表示や検索ができなくなり、勝手にある画面へ飛んでしまいます。 googleやYahooのURLを直接アドレスに入力した後、検索文字を入力して「検索」したり、あるいは「お気に入り」に登録しているページを指定したりすると画面の下方に http://204.177.92.***/safesearch/index・・・が いったん表示された後 http://213.193.215.***/ssredir/gb.htmlに画面が飛んでしまいます。 ウィルスバスター2005のスパイウェア検索で表示されたADW_SAFESEARCH.C の現象と同じようなので、その対処法を参照しましたが、該当するアプリケーションやレジストリがなかったため、対処ができません。 ADW_SAFESEARCH.A もスパイウェア検索でひっかかったので、トレンドマイクロやシマンテックのHPに従って対処しました。こちらはレジストリ1件が該当したので削除しました。 この対応後、再起動してもやはり勝手に画面が変わってしまいます。 インターネットでホームページを見ることができなくなりとても困っています。 対処法を教えていただけますか。よろしくお願いいたします。

  • DLLファイルについて

    アプリケーションを開いたところ、DLLファイルが見当たりませんというメッセージが出ました。必要なファイルを見つけた後、それをどのフォルダに入れてどう使えばいいのかがわかりません。ご存知の方、教えてください。かなり困っています。

  • WindowsXP システムフォントの変更方法

    WindowsXP システムフォントの変更方法を知りたいです。 検索していると、レジストリをいじって変更する方法が見つかりました。 それではなく、できたらアプリケーションで変更したり戻したりしたいですー。そういったアプリありましたら、教えていただきたいです。 よろしくお願いします。

  • devobj.dllが見つからないため…

    windows7使用してます。 以前立ち上げた時、ブルースクリーンになりそのまま再起動。 その後、上記のようなメッセージが出てきます。 立ち上がりがめちゃくちゃ遅いです。 でも遅いながらも立ち上がるとそれ以降は普通に動きます。 (普通、と言っても我が家はインターネットしか使用しないのでそれのみの話ですが) レジストリが壊れているのかと、レジストリを修復する無料ソフトをダウンロードするも、表記の「devobj,dllが見つからないため……再インストールしてください」と出て、受け付けない。 じゃあ再インストールすれば…とネットでdevobj.dllなるものを探しても拡張子が開くものではないのでその先に進めない。 だいたい、devobj.dllとは何なのでしょう? ちなみに、システムの復元も「復元ポイントがありません」となって先に進めません。 結局、OSを再インストールする以外方法はないのでしょうか? gatewayのノートパソコンなのですが、2月に購入後ほぼインターネットしか利用していないにもかかわらず、5月にも原因不明のシステムエラーで再インストールしています。 2,3ヶ月置きに再インストールしていることになります… 相性の悪いPCにぶち当たっただけなのでしょうか…? 今後もこんなことが続くかと思うとがっかりです…

  • WS2_32.dllが見つかりません

    最近、「WS2_32.dllが見つからなかったため、このアプリケーションを開始できませんでした」、 「MSVCP71.dllが見つからなかったため、このアプリケーションを開始できませんでした」というエラーが頻繁に出て、如何なアプリケーションも起動させることができません。 パソコンを再起動したりすれば、ほんのしばらくの間はエラーが出ることは無く正常にアプリケーションを起動できるのですが、しばらくするとこのようなエラーが出始め、どんなアプリケーションも起動できなくなってしまいます。 WS2_32.dllで検索しましたところsystem32というフォルダにこのファイルのインストールが必要であるとのことですが、確認してみましたところ既にありました。MSVCP71.dllも同様です。 念のため再度ネットからインストールしたものを入れてみても症状が変わることはありませんでした。 また、ウィルス検索を行ってみてもウィルスは見つかることはありませんでした。 システムの復元も試してみたのですが、結局なにも変わりませんでした。 一体どこに原因があり、どこをどうすれば治るのでしょうか? 作業が思い通りに出来ず非常に困っています。 是非返答の程よろしくお願いします。

  • 検索結果の順序について。

    検索結果の順序について。 ネットショップとその店のブログを持っています。 Googleなどで店名を検索すると、ショップよりもブログの方が結果の上部に出てきてしまうのですが、何故このような事が起こるのでしょうか?ちなみにアメーバブログを利用しております。 ショップの方が検索結果の上部にくるためには、どうすればいいでしょうか? お知恵をお貸しいただけましたら幸いです。

    • ベストアンサー
    • SEO
  • windows10 VB unlha32.dll

    VB で、debug モードでビルドするとOK,ですが、release モードでビルドすると下記エラーになります。 ”unlha32.dll がインストールされていません” unlha32dll は、実行ファイルのカレントディレクトリ、cドライブのwindows、その下のシステム32、sysWOW に入れています。windowsXP、VS2010のころに造った物を、win10用に流用して作り替えています。今は、VB2017 です。 解決方法を教えてください、unlhaの置き場、パス指定か、VBのreleaseビルドの設定か、などと類推します。.