使用.NET的UserControl作为COM的嵌入式控件

时间:2008-10-07 08:54:34

标签: c# com eclipse-plugin ganymede

我正在将现有的.NET 3.5应用程序移植到Eclipse的插件中。

我想在Eclipse中嵌入用C#编写的自定义UserControl;我已成功将其作为COM控件导出,并且它在Eclipse Europa中运行良好。

在Ganymede中,似乎OLE加载代码已经改变,而最初在Europa中运行的代码失败了。

特定错误是当Ganymede加载我的控件时,它会查询IOleObject,接收正确的接口,然后在其上调用SetClientSite,这会导致我的对象丢失其引用,并被取消分配(Ganymede将崩溃)。 完全相同的控件在Visual C ++设计器和Europa中都能完美运行。

除了显而易见的.NET属性和UserControl之外,还有我需要继承的特定类吗?我需要实现的特定接口,还是Europa / VC和Ganymede之间的特定行为改变?

谢谢!

2 个答案:

答案 0 :(得分:1)

如果有人仍然遇到此问题,请在Connect上报告。完成报告后,请在此处发布错误报告的网址,以便阅读此帖子的人可以对其进行投票。

如果这仍然是一个错误,那么通过.NET 4.0的RTM或至少SP1修复它会很好。

答案 1 :(得分:0)

我遇到过在非.NET环境中托管.NET控件的类似问题。我的一些用户控件如何暴露给COM存在问题。

按照此网站上的示例解决了我的问题,也许它对您也有帮助!

Link