0

サード パーティの ActiveX コントロールをラップするために使用している C# ActiveX コントロール ラッパーを作成しました。

ActiveX コントロール ラッパーを登録しており、Dynamics AX のフォームに追加できます。フォームを開くと、毎回最大 400 個の GDI オブジェクトが作成されます。しかし、私が抱えている問題は、AX フォームが閉じられたときに、GDI オブジェクトがどれも解放されないことです。

最終的に、AX 内で次のエラーが発生します。

ここに画像の説明を入力

C# ラッパーには、作成した Wrap から呼び出せるメソッドがあり、サード パーティ コントロールで Dispose を明示的に呼び出しています。ただし、作成された GDI オブジェクトの約半分 (~200/400) しかクリーンアップされません。

したがって、問題は、AX フォームを開いたり閉じたりするたびに、約 200 個の新しい GDI オブジェクトが作成されることです。

作成された残りの GDI オブジェクト (またはほぼすべて) を取り除くために、他に何を調べることができますか?

4

1 に答える 1

0

これは既知のバグであり、ホットフィックスが利用可能です。ただし、これは 2009 SP1 の問題です。ダイナミクスフォーラムでこのディスカッションに従ってください 。

グリッドのフィルタリングは、この問題の 1 つですが、確認することをお勧めします。

于 2011-07-10T05:16:12.323 に答える