我创建了一个 C# ActiveX 控件包装器,而不是用于包装第三方 ActiveX 控件。
我已经注册了 ActiveX 控件包装,我可以将它添加到 Dynamics AX 中的表单中。当我打开表单时,每次都会创建约 400 个 GDI 对象。但是我遇到的问题是,当关闭 AX 表单时,没有释放任何 GDI 对象。
最终我在 AX 中收到以下错误。
我的 C# 包装器中有一些方法,我可以从创建的 Wrap 中调用这些方法,我在第三方控件上显式调用 Dispose。然而,这只清理了大约一半创建的 GDI 对象(~200/400)
所以问题是每次打开和关闭 AX 表单时都会创建大约 200 个新 GDI 对象。
我还能看到什么来摆脱创建的其余 GDI 对象(或几乎所有这些对象?)