2011-02-02 94 views
4

在我完全转移到Linux之前,只有一个Windows应用程序困扰我。这是一个股票图表应用程序(找不到任何体面的Linux原生),我正在使用Wine运行。将COM对象暴露给在Wine/Linux中运行的应用程序

该应用程序有自己的语言,它允许用户从COM组件创建对象来实现外部功能。在Windows中,我使用Mono创建了一个程序,该程序公开了某些允许我与制图软件交互的功能。

例子:

myObj = CreateObject("myApp.application"); 
myObj.data = Price; 
volatility = myObj.Volatility; 

问:我怎么能揭露“对myApp”,这是在Linux环境下运行的单声道运行时在葡萄酒运行看图软件的ComVisible组件?

回答

1

不幸的是,mono和wine没有特别的集成,所以你不能直接在Mono中调用Wine托管的代码。

一种选择是使用微软的.NET 2.0 framework in Wine。只有最高2.0才支持。这可能会或可能不会违反.NET许可证。

另一种选择是使用在wine中运行的winelib编写自定义代理,但在unix域套接字上监听来自单声道程序的命令。

另一种选择是编写通过DCOM与单色葡萄酒进行对话所需的(相当复杂的)代码。这将是相当困难的,但会让那些希望获得单声道COM对象工作的人受益。

0

您应该能够在Wine下安装Mono的Windows版本并在其中运行您的代码。