【问题标题】:Expose COM object to an application running in Wine/Linux将 COM 对象暴露给在 Wine/Linux 中运行的应用程序
【发布时间】:2011-06-19 17:19:38
【问题描述】:

在我完全迁移到 Linux 之前,只有一个 Windows 应用程序困扰着我。这是我使用 Wine 运行的股票图表应用程序(找不到任何适合 Linux 的原生应用程序)。

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

例子:

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

问题:如何将 Linux 环境下 Mono 运行时运行的“myApp”的ComVisible 组件暴露给 Wine 中运行的图表软件?

【问题讨论】:

    标签: linux com object wine


    【解决方案1】:

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

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

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

    另一种选择是编写(相当复杂的)代码,让 mono 通过 DCOM 与 wine 对话。这将是相当困难的,但对任何想要让 COM 对象在单声道中工作的人都有好处。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-09-09
        • 2017-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-06
        相关资源
        最近更新 更多