将SWT Composite嵌入到C#应用程序中

我有一个使用SWT作为其widget工具包的Java应用程序。

我还有一个Windows C#应用程序。

我想要一种方法将SWT Composite绘制到这个C#应用程序中。

我可以想到两种方法:

  • 句柄:由于SWT基于本机窗口工具包,似乎应该有一种方法在C#应用程序中创建一个Composite,将本机指针传递给Java应用程序,然后从那里控制Composite。

  • OLE:由于SWT肯定可以使用OLE组件,也许它还有一种方法可以将自己呈现为OLE组件?

任何人都有关于如何实现这一目标的任何提示? 我并不害怕Java和C#在启动时之间的复杂通信,但我真的希望能够在设置后无缝地从Java控制Composite。

要将SWT组合放入winform中,可以在新进程中启动SWT应用程序,然后使用Process.MainWindowHandle获取子进程窗口句柄。

本文提供了一个复合另一个过程的示例。

此链接是winform内部的SWT和winform内部的winform的特定解决方案(更改流程开始……)。

在解决方案中,我还演示了通过std-in / out在进程之间进行通信的方法。(有很多关于它的问题)

提示:存储库中的代码不是生产代码! (C#和Java)

我只是想提供一个演示。 当我有时间,我会重构代码……