我已经构建了一个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编译包装器.然后,应用程序的其余部分可以使用您想要的任何框架.