5

我已经构建了一个我想移植到 linux 的 windows C++ 应用程序。这样做的主要原因是便于我们的 IT 员工进行系统维护。除了运行这个应用程序的一台 Windows 机器之外,我们是一个仅限 linux 的操作。

此应用程序内置并在 Windows 上运行的原因是它使用 Windows API(dll 和标头)连接到属于外部方的服务器。这个连接使用了一些我真的不想弄乱的专有协议,(而且我认为我在合同上不允许这样做)所以我坚持使用 .dll。

这个dll是windows只是因为(我怀疑)dll中的windows sockets特定代码。除此之外,它并没有做很多高级的事情。在WINE中在Linux上运行应用程序和嗅探协议并自己重新实现DLL之间有什么方法可以让我让这个应用程序在Linux机器上运行?

这个想法的灵感来自关于 QT creator 的这个项目,所以任何允许我玩的解决方案都会非常酷。

4

1 回答 1

7

最明显的中间立场是使用Winelib。我不知道它是否可以直接链接到本机 DLL,但如果不能,您可能可以使用LoadLibrary().

然后,您可以将应用程序分成两部分:仅调用 DLL 的包装器,以及与包装器对话的其余代码。您可以在单独的进程中同时拥有这两者,因此只有包装器必须使用 Winelib 进行编译。然后应用程序的其余部分可以使用您想要的任何框架。

于 2008-11-09T22:31:10.993 回答