ホスト プログラムといくつかのプラグインで構成されるアプリケーションがあります。プラグインは、動的にロードおよびアンロードできる dll に実装されます。プラグインのコード (dll 内) は、オブジェクトにメモリを割り当て、ポインターをホスト プログラムに渡します。これらのオブジェクトは dll ヒープに割り当てられ、専用のメモリ割り当て関数を使用するようにインターフェイスを変更する方法はありません。
オブジェクトが割り当てられたヒープ マネージャーをホスト プログラムが検出する方法はありますか? dll に対してある種の参照カウントを実装したいと考えています。ホスト プログラムが dll のメモリを使用している限り、dll をアンロードできません。つまり、(どのプラグインが) メモリ ブロック (ホスト内のさまざまなリストに保持されているオブジェクト) を割り当てたかをホスト プログラムから追跡したいと考えています。現在のインターフェイスには、dll をアンロードするための呼び出しが含まれています。この呼び出しはアンロードをスケジュールする必要がありますが、ホストがメモリの使用を終了してから実行する必要があります。
提案をありがとう。