1

ActiveSkinは、もともと VB6 で開発され、後に VB.NET に移行されたアプリケーションのすべての形式で使用されています。このアンマネージ コードは Interop にラップされ、アプリケーションのすべてのフォームに継承されるクラス SkinForm で宣言されます。

これで、クラスのメソッド OnFormClosing に次のコードが追加されました。

MyBase.OnFormClosing(e)
If Not ActiveSkin Is Nothing AndAlso Me.Controls.Contains(ActiveSkin) Then
    Me.Controls.Remove(ActiveSkin)
End If
ActiveSkin = Nothing

ActiveSkin - ActiveSkin ライブラリの SkinForm クラスのラッパーです。

フォームを閉じるたびに、GDI リークが発生します。

次のコードを追加すると:

ActiveSkin.Dispose() 

コントロール コレクションから削除した後。漏れが消える。ただし、フォームを最初に閉じるときに、次のメッセージが表示されます (アプリケーションの実行中に 1 回だけ)。

「<em>警告!このアプリケーションは、ActiveSkin コントロールの試用版で作成されました。ここで ActiveSkin を登録できます: http://www.softshape.com/activeskin ”.

もちろん、ライブラリのライセンスは持っています。

何か考えはありますか?

ありがとう。

4

0 に答える 0