我已经构建了一个Windows C ++应用程序,我想将其移植到linux。这样做的主要原因是我们的IT员工可以轻松进行系统维护。除了运行这个应用程序的一台Windows机器,我们只是一个linux操作。

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

这个dll只是windows,因为(我怀疑)dll中的windows套接字特定代码。除此之外,它没有做很多先进的东西。有没有办法在WINE上运行Linux上的应用程序并嗅出协议并自己重新实现DLL,这将允许我让这个应用程序在Linux机器上运行?

这个想法受到了这个想法的启发关于QT创作者的项目所以任何允许我玩这个的解决方案都会非常酷。

有帮助吗?

解决方案

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

然后,您可以将应用程序分为两部分:一个只调用DLL的包装器,其余的代码与您的包装器通信。您可以在两个单独的进程中使用,因此只需要使用Winelib编译包装器。然后,应用程序的其余部分可以使用您想要的任何框架。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top