現在、同一名称の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
実行環境を書き忘れてました。
Windows 2000Server
VB6
です。
単純に、「参照設定」をやめればいいのではないかと・・・
> 現在、同一名称の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を呼び出すのか」を
起動時に決定できるという程度ですけれども。
こちらの説明不足で伝わりづらい所を適切な回答をいただき、
ありがとうございました。
基本的には、どちらもActiveX DLLで異なるのは、パスだけです。
呼出し先の指定は、参照設定で呼出すDLLを選択している形です。
「Side-by-Side 」を拝見しましたが、出来そうな感じがしていますので、
がんばってみたいと思います。
ツイート | ![]() |