【发布时间】:2017-01-27 05:06:58
【问题描述】:
场景
我有一个为 Windows 应用程序(使用 C++)编写的插件 (dll)。
该应用程序在 Wine 下的 Linux 上运行良好,但是,在插件中我想使用 Wine 中尚不可用的功能。
假设我可以在运行时检测到应用程序正在 Wine 中运行,我是否可以动态加载本机 Linux 库(或以任何其他方式访问本机 Linux API)以模拟所述功能?
我很好奇这是否可以在没有任何严重黑客攻击的情况下完成。
【问题讨论】:
-
写一个原生的Linux应用怎么样?如果做得“正确”,您最终将获得适用于 Linux 和 Windows 的跨平台解决方案。但这仍然是一个有趣的问题。
-
谢谢,但我正在为 foobar2000 编写一个插件,这是一个仅限 Windows 的闭源音乐播放器。
-
我会编写一个跨平台的可执行程序,以及两个特定于操作系统的小型可加载插件,它们通过管道或其他机制与之对话。
-
我们到底在谈论什么 API?
-
Wine 在 Linux 上提供 Windows 功能。您是说您想使用 Wine 尚不支持的 Windows 功能,因此您打算效仿它吗?如果您打算这样做,那么也许您应该将该功能添加到 Wine 本身。