dポイントプレゼントキャンペーン実施中!

WindowsNT 4.0、VC++ 5.0 を使っています。

マルチプロセスに対応するDLLにおいて、DllMain()の
デタッチ(DLL_PROCESS_DETACH)処理で、「これが最後の
プロセスだ」と判断する方法はないでしょうか。
共有データとしてカウンタを持って、アタッチ、デタッチで
加減算しようと考えましたが、あるプロセスがアクセス違反などで
落ちたり、タスクマネージャなどから強制終了させられると
デタッチルーチンは動作しないので、駄目だと気付きました。

何かいい方法などがありましたら、ご教授願います。

A 回答 (1件)

こんにちは、honiyonです。



 あまり詳しくない分野なのでアテにならないかも知れないですが、
 アタッチ時に Window HandleやWindow名等を渡してもらうようにして、任意のタイミング、もしくはデタッチ時にアタッチしているソフトがまだ起動されているか、を判断してみてはいかがでしょう?

 試してないのでこの方法が使えるかは分かりません(^^;
 参考になれば幸いです(..
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました。
アタッチ時にPIDを取得して、テーブル管理して、
デタッチ時にテーブル内のプロセスの存在チェックを
行って対応しようと思います。

お礼日時:2001/11/07 11:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!