我正在将现有的 .NET 3.5 应用程序移植到 Eclipse 插件中。
我想让我的自定义用户控件,用 C# 编写,嵌入到 Eclipse 中;我已经成功地将它导出为 COM 控件,并且在 Eclipse Europa 中运行良好。
在 Ganymede 中,OLE 加载代码似乎发生了变化,而最初在 Europa 中运行的代码失败了。
具体错误是当 Ganymede 加载我的控件时,它查询 IOleObject,接收正确的接口,然后在其上调用 SetClientSite,这导致我的对象丢失了它的两个引用,并被解除分配(Ganymede 将崩溃)。完全相同的控件在 Visual C++ 设计器和 Europa 中都能完美运行。
除了明显的 .NET 属性和 UserControl,我还需要继承什么特定的类吗?我需要实现的特定接口,或者 Europa/VC 和 Ganymede 之间的特定行为变化?
谢谢!