1

既存の .NET 3.5 アプリケーションを Eclipse のプラグインに移植しています。

C# で記述されたカスタム UserControl を Eclipse に組み込みたいと考えています。COM コントロールとして正常にエクスポートされ、Eclipse Europa でうまく動作します。

Ganymede では、OLE ロード コードが変更されたようで、元々 Europa で機能していたものが失敗します。

具体的なエラーは、Ganymede がコントロールをロードし、IOleObject をクエリし、適切なインターフェイスを受け取り、その上で SetClientSite を呼び出すときに発生します。これにより、オブジェクトが両方の参照を失い、割り当てが解除されます (Ganymede はその後クラッシュします)。まったく同じコントロールが、Visual C++ デザイナーと Europa の両方で問題なく機能します。

明らかな .NET 属性と UserControl 以外に、継承する必要がある特定のクラスはありますか? 実装する必要がある特定のインターフェイス、または Europa/VC と Ganymede の間の特定の動作の変更はありますか?

ありがとう!

4

2 に答える 2

1

それでも問題が解決しない場合は、Connectで報告してください。報告が終わったら、ここにバグ報告のURLを投稿してください。そうすれば、この投稿を読んだ人が投票できるようになります。

これがまだバグである場合は、.NET 4.0のRTM、または少なくともSP1で修正してもらうと便利です。

于 2009-07-04T14:09:31.413 に答える
0

非 .NET 環境で .NET コントロールをホストする際に、同様の問題に遭遇しました。一部のユーザー コントロールが COM に公開される方法に問題がありました。

このサイトの例に従うことで私の問題は解決しました。おそらくあなたにも役立つでしょう!

リンク

于 2008-12-19T05:21:45.747 に答える