COM オブジェクトの寿命管理 ~ 作ってわかる COM の基礎

IUnknown インターフェイスの AddRef メソッドと Release メソッドは、「いつオブジェクトをメモリから解放してよいか」とか、 「いつ DLL をアンロードしてよいか」 などを判断するため、すなわち 寿命管理 をするために使います。

COM は参照カウンタで寿命管理するのですが、 ある COM オブジェクトへの参照が増えたときに、参照カウンタを増やし、参照されなくなったときに参照カウンタを減らします。 この参照カウンタが0になったときに、そのオブジェクトをメモリから解放したり、DLL をアンロードしたりします。

参照カウンタの実装を失敗すると、不要になったオブジェクトが解放されずメモリリークが発生したり、 あるいはまだ使用中なのにメモリから解放されて、アクセス違反の原因になったりします。

« 前の記事 次の記事 »
IUnknown とは? COM コンポーネントの登録機能

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説