VB2008で、
ある画面のボタンを押すと、dllが起動して、
別画面が開く使用なのですが、
そのdllが使用中かどうか
ソース上で判別ができるのでしょうか?
よろしくお願いします。
知ってどうする・・・
アンドキュメントな情報ですが、どうしてもなら
頑張って下さい
http://www.securityxploded.com/dllrefcount.php
以上。参考まで・・・
因みにそのDLLって、どんなやつ?
それによっては、取れない場合もあります。
COM型とか、.NETのDLLとか、Win32 DLLとか・・・
要はLoadLibraryでエラーするのは、この方法では無理。
全プロセス空間から、各々のEXEがロードしているDLL情報
を取得して該当するDLLがLoadされているか・・・カウント
しないといけないように思われます。
何にせよ、何で必要?
以上。
どうもありがとうございます。
DLLは.NETとだと思います。
なぜ必要かといいますと、
親であるメイン画面.exeから
ボタンを押すと子画面のdllを呼び出して表示するのですが、
子画面の表示中は、親画面の×ボタン(閉じるボタン)が
押せないようにしたいと考えてします。
それで、子画面が1つも開いていない時のみ
親画面の×ボタン(閉じるボタン)押せる
動きにしようと思い、
上記の質問をさせていただきました。
そういう方法はナンセンスですネ!
子画面を開く動作は、親が担っているので、子画面用の
オブジェクトがnothingなのかどうかで判断して、閉じる
動作の有効性を確認した方がよいです。
わざわざアンドキュメントな方法を安易に行使するのは
より深い問題やバグを誘引してしまうと思いますが。
※ 要はプログラムの組み方が悪い・・・
もしアンドキュメントにせよ、そういう情報が入手
できなかった場合、どうするんですか?
以上。
そういう情報が入手できなかった場合は、
dllが起動しないとみなし閉じるつもりで
考えていました。
教えていただいたやり方で
(子画面用のオブジェクトがnothingなのかどうかで判断して閉じる)
できましたので、それで行きたいと思います。
どうもありがとうございました。
ツイート | ![]() |