在我完全迁移到Linux之前,只有一个Windows应用程序让我很烦恼。这是我正在使用Wine运行的股票图表应用程序(找不到任何适合Linux的原生应用程序)。
此应用程序具有自己的语言,它允许用户从COM组件创建对象以实现外部功能。在Windows中,我使用Mono创建了一个程序,该程序公开了允许我与图表软件交互的某些功能。
示例:
myObj = CreateObject("myApp.application");
myObj.data = Price;
volatility = myObj.Volatility;
问题:我如何将在Mono运行时的Linux环境中运行的“myApp”的ComVisible
组件暴露给在Wine中运行的图表软件?
答案 0 :(得分:1)
不幸的是,mono和wine没有特别的集成,所以你不能直接在Mono中调用Wine托管的代码。
一种选择是使用Microsoft的.NET 2.0 framework in Wine。最好只支持2.0。这可能违反了.NET许可证,也可能没有。
另一个选择是使用在wine中运行的winelib编写自定义代理,但是在单一程序中侦听unix域套接字以获取命令。
另一种选择是编写单声道与DCOM上的葡萄酒交谈所需的(相当复杂的)代码。这将是相当困难的,但是对于想要让COM对象以单声道工作的任何人都会受益。
答案 1 :(得分:0)
您应该可以在Wine下安装Windows版本的Mono并在其中运行您的代码。