- 締切済み
DLLのプロパティ値の非共有
VBで作成したDLLのプロパティ共有 すみません。DLL作成初心者です。 VBでDLLを作成してみたんですが、Original.Exeから呼び出した Called_A.DLLをそのままに、Called_B.DLLをOriginal.Exeから呼び出しました。 そこで、Called_B.DLLからもCalled_A.DLLを呼び出す事が出来るのですが、 Called_B.DLLから呼び出したCalled_A.DLLのプロパティを変更したところ、 Original.Exeから呼び出したCalled_A.DLLのプロパティの値も変更されているんです。 DLLってのは、インスタンスをあっちこっちで作ることができ、各々で作ったインスタンス内で 閉じられているもんだと思っていました。 作り方で共有する事が出来たり、各々で閉じたりそうなっちゃうんですか? ダイナミックリンクライブラリっていう位だから、各々で閉じる事は出来ないんですかね? メモリを共有するのとかしないとかが絡んでいるのかなと思いましたが、ヘルプをみても よく分からないし、その手のDLLについて書いてあるサイトを見てみたんですが、 いまいちよく分からず的を得ているのか得てないのかすら分かりません。 すみませんが、どなたかご教授お願いします。 相関図) 1-1: Original.Exe → 1-2: Called_A.DLL ↓ 2-1: Called_B.DLL → 2-2: Called_A.DLL ※何故か2-2で設定したプロパティが1-2のプロパティにも反映されている... 環境: WindowsXP Professional VisualBasic6(SP5) InternetExplolor6
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- nda23
- ベストアンサー率54% (777/1415)
DLLの中の関数の定義を標準モジュールで行っていませんか? 標準モジュールはStaticなインスタンスなので、共有され、 リフレッシュもできません。 Privateなクラスモジュール内で定義してみては如何でしょう。 おそらく、クラスのインスタンスと同じ扱いになると思います。 ダメかも知れませんが…
お礼
nda23さん、回答どうもありがとうございます。 遅くなりましてすみません。 私の知識不足の為、Privateなクラスモジュールでの定義がよく分からず、外部へ繋がっているクラス内でPrivateな変数宣言すると、その他の標準モジュール等で、その値を参照出来なくなってしまいます。 いろいろ調べたり、試しているのですが、未だうまくいきません。 もう少し調べてみます。