質問

私はcomコントロールを書くことを学ぶ方法で自分の方法で働いています。私はプロジェクトの例を持っています、そしてそれは行を使用します

_pAtlModule->Lock()
_pAtlModule->Unlock()

COMコントロール用のOnCreate()HandlerおよびOnDestroy()ハンドラーでそれぞれ。

_patlmoduleはcatlmoduleのインスタンスであることを理解しています - 「アプリケーション」オブジェクト(より良い説明が必要です)。

しかし、私の質問に。 _patlmodule-> lock()lockは正確に何ですか?私はそれが重要なセクションであることを知っていますが、それは何を保護していますか?

comコントロールを書くときに_patlmoduleオブジェクトのロックとロックを解除する必要がありますか?

ありがとう!

役に立ちましたか?

解決

アウトドーでは、実際には実質的なことをしているようには見えません!

MSDNは、「ロック数を増やし、更新された値を返す。これはデバッグとトレースに役立つ可能性がある」と述べています。

http://msdn.microsoft.com/en-us/library/9syc2105%28v = vs.80%29.aspx

これは誤解を招くと思いますが、動作はモジュールがアンロードされないようにすることを目的としています。私は、ロックアンカーとして使用される原子価値です(より良い用語が必要です!)。

他のヒント

見る この答え同様の質問 この関数は、InProc COMサーバーDLLのいわゆる「ロックカウント」を管理するためのものです。一緒に DllCanUloadNow() ロックカウントは、コードとデータが使用されなくなるまでDLLがアンロードされるのを防ぎます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top