• ベストアンサー

DLLにおいて、最後のプロセスデタッチだと判断する方法

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

質問者が選んだベストアンサー

  • ベストアンサー
  • honiyon
  • ベストアンサー率37% (331/872)
回答No.1

こんにちは、honiyonです。  あまり詳しくない分野なのでアテにならないかも知れないですが、  アタッチ時に Window HandleやWindow名等を渡してもらうようにして、任意のタイミング、もしくはデタッチ時にアタッチしているソフトがまだ起動されているか、を判断してみてはいかがでしょう?  試してないのでこの方法が使えるかは分かりません(^^;  参考になれば幸いです(..

nabezo-
質問者

お礼

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

関連するQ&A