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()
从控件集合中删除它后。泄漏消失了。但是在任何形式的第一次结束时,我们得到以下消息(在应用程序执行期间只有一次):
“的警告!此应用程序是使用ActiveSkin控件的试用版创建的。 您可以在此处注册ActiveSkin:http://www.softshape.com/activeskin “。
当然我们有图书馆的许可证。
你有什么想法吗?
感谢。