同一名称のDLLを明示的に実行する方法は?

解決


蛇浬  2005-11-11 09:21:58  No: 92576

現在、同一名称のDLLを異なるフォルダに格納して、格納したDLLを実行する
DLLを作成しています。実行するDLL側でそれぞれ、参照設定でDLLを参照してるのですが、かならず実行されるDLLは同じ物になっています。
初めてのVBの為に、問題解決ができません。何かご存知の方はアドバイスお願いします。
ちなみに、CreateObjectでDLLをロードして失敗して、Newステートメントではうまくいっていますが、実行したいDLLは複数の為に、動的にモジュール名を変更したいので、CreateObjectを使用したいと思っております。

<<イメージ図>>
D:\A\X.Dll  ← D:\C\R.Dll
D:\B\X.Dll  ← D:\D\R.Dll


蛇浬  2005-11-11 09:28:22  No: 92577

実行環境を書き忘れてました。
Windows 2000Server
VB6
です。


通ってみた  2005-11-11 10:04:37  No: 92578

単純に、「参照設定」をやめればいいのではないかと・・・


魔界の仮面弁士  2005-11-11 10:37:16  No: 92579

> 現在、同一名称のDLLを異なるフォルダに格納して、格納したDLLを実行する
> DLLを作成しています。

DLLを実行するDLL…?
話がよく見えていないのですが、いずれも ActiveX DLLなのですか?

その場合、異なるのはパスだけですか? たとえば、ProgramID や GUID は
それぞれ違っているのでしょうか。それとも同じなのでしょうか。
また、どちらのパスのDLLを読み込むかどうかは、どのようにして
指定しているのでしょうか。

> 何かご存知の方はアドバイスお願いします。
状況が見えないので、適切なアドバイスは出来かねますが、限定された
状況下においては、Side-by-Side を利用するという手もあります。

http://www.galliver.co.jp/writing/vmx/sxs2k/
http://www.ailight.jp/blog/sha256/archive/2005/03/17/5061.aspx

もっとも、今回は Windows 2000 なので、.localファイル方式を使っても、
「登録済みのDLLを呼び出すのか、アプリフォルダ上のDLLを呼び出すのか」を
起動時に決定できるという程度ですけれども。


蛇浬  2005-11-12 01:21:33  No: 92580

こちらの説明不足で伝わりづらい所を適切な回答をいただき、
ありがとうございました。

基本的には、どちらもActiveX DLLで異なるのは、パスだけです。
呼出し先の指定は、参照設定で呼出すDLLを選択している形です。
「Side-by-Side 」を拝見しましたが、出来そうな感じがしていますので、
がんばってみたいと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加