サード パーティの ActiveX コントロールをラップするために使用している C# ActiveX コントロール ラッパーを作成しました。
ActiveX コントロール ラッパーを登録しており、Dynamics AX のフォームに追加できます。フォームを開くと、毎回最大 400 個の GDI オブジェクトが作成されます。しかし、私が抱えている問題は、AX フォームが閉じられたときに、GDI オブジェクトがどれも解放されないことです。
最終的に、AX 内で次のエラーが発生します。
C# ラッパーには、作成した Wrap から呼び出せるメソッドがあり、サード パーティ コントロールで Dispose を明示的に呼び出しています。ただし、作成された GDI オブジェクトの約半分 (~200/400) しかクリーンアップされません。
したがって、問題は、AX フォームを開いたり閉じたりするたびに、約 200 個の新しい GDI オブジェクトが作成されることです。
作成された残りの GDI オブジェクト (またはほぼすべて) を取り除くために、他に何を調べることができますか?