※ ChatGPTを利用し、要約された質問です(原文:DLLで初回呼び出しと最後のアンロードを認識可能?)
DLLで最初の呼び出しと最後のアンロードの認識可能性について
このQ&Aのポイント
DLLが最初に呼ばれた時と最後にアンロードされた時、DLL側で認識可能なのでしょうか?
呼び元の処理も不特定多数から呼ばれるため、初期処理と終了処理のタイミングが取れない場合、参照カウントを利用できるのか?
ライブラリをリンクしていない場合でも参照カウントで管理されるのか?
DLLで初回呼び出しと最後のアンロードを認識可能?
すみません、何度もDLLの事で質問しています。
おかげさまでファイルマッピングを利用してメモリを共有することが
できました。ありがとうございました。
【今回の質問】
DLLが最初に呼ばれた時と、最後にアンロードされた時って、
DLL側で認識可能なのでしょうか?
最初に呼ばれたときにメモリをアロケートし、最後に解放したいのですが、
呼び元の処理も不特定多数から呼ばれるので、
初期処理・終了処理のタイミングが取れないらしいのです。
色々調べていたら何回ロードされているか、参照カウントというのを
どこかで持っているらしいのですが、これが使えないでしょうか。
また、今はライブラリをリンクしているので、
LoadLibrary、FreeLibraryは使用していませんが、
その場合でも同じように参照カウントで管理されるのですか?
申し訳ありませんが、ご教示ください。
よろしくお願いいたします。
補足
今回はクラスをエクスポートしたため、この方法の使い方がわかりませんでした。 このクラスをインポートされた時に、どこかでDLL_PROCESS_ATTACHが 発生していると思うのですが・・・。 また別の形で質問させて頂きます。ありがとうございました。