VB2008で起動中のdllを知るには


ユーケー  2009-07-11 01:06:29  No: 142199

VB2008で、
ある画面のボタンを押すと、dllが起動して、
別画面が開く使用なのですが、
そのdllが使用中かどうか
ソース上で判別ができるのでしょうか?
よろしくお願いします。


オショウ  2009-07-11 02:28:23  No: 142200

知ってどうする・・・

アンドキュメントな情報ですが、どうしてもなら
頑張って下さい

http://www.securityxploded.com/dllrefcount.php

以上。参考まで・・・


オショウ  2009-07-11 02:40:59  No: 142201

因みにそのDLLって、どんなやつ?
それによっては、取れない場合もあります。

COM型とか、.NETのDLLとか、Win32 DLLとか・・・
要はLoadLibraryでエラーするのは、この方法では無理。

全プロセス空間から、各々のEXEがロードしているDLL情報
を取得して該当するDLLがLoadされているか・・・カウント
しないといけないように思われます。

何にせよ、何で必要?

以上。


ユーケー  2009-07-11 22:26:03  No: 142202

どうもありがとうございます。

DLLは.NETとだと思います。

なぜ必要かといいますと、
親であるメイン画面.exeから
ボタンを押すと子画面のdllを呼び出して表示するのですが、
子画面の表示中は、親画面の×ボタン(閉じるボタン)が
押せないようにしたいと考えてします。

それで、子画面が1つも開いていない時のみ
親画面の×ボタン(閉じるボタン)押せる
動きにしようと思い、
上記の質問をさせていただきました。


オショウ  2009-07-12 02:56:17  No: 142203

そういう方法はナンセンスですネ!

子画面を開く動作は、親が担っているので、子画面用の
オブジェクトがnothingなのかどうかで判断して、閉じる
動作の有効性を確認した方がよいです。

わざわざアンドキュメントな方法を安易に行使するのは
より深い問題やバグを誘引してしまうと思いますが。

※  要はプログラムの組み方が悪い・・・
    もしアンドキュメントにせよ、そういう情報が入手
    できなかった場合、どうするんですか?

以上。


ユーケー  2009-07-15 00:03:24  No: 142204

そういう情報が入手できなかった場合は、
dllが起動しないとみなし閉じるつもりで
考えていました。

教えていただいたやり方で
(子画面用のオブジェクトがnothingなのかどうかで判断して閉じる)
できましたので、それで行きたいと思います。

どうもありがとうございました。


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

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






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