我已经构建了一个windows C++应用程序,我想将其移植到linux上。这样做的主要原因是便于我们的IT员工进行系统维护。除了运行这个应用程序的一台windows机器之外,我们是唯一的linux操作。
这个应用程序是内置的,在windows上运行的原因是它使用windows API (dll和头)来连接到属于外部方的服务器。这个连接使用了一些我不想弄乱的专有协议(我认为我在合同上是不允许的),所以我被.dll卡住了。
这个dll是windows的,因为(我怀疑) dll中的特定于windows套接字的代码。除此之外,它不会做很多高级的事情。在用WINE在linux上运行应用程序和嗅探出协议并自己重新实现DLL之间,有没有什么方法可以让我在linux机器上运行这个应用程序?
这个想法的灵感来自于这个item about QT creator,所以任何允许我使用它的解决方案都将是非常酷的。
发布于 2008-11-09 22:31:11
最明显的中间立场是使用Winelib。我不知道它是否可以直接链接到本机DLL,但如果不能,您可能可以用LoadLibrary()
加载它。
然后,您可以将应用程序拆分为两部分:仅调用DLL的包装器,以及与包装器交互的其余代码。您可以将两者放在不同的进程中,因此只有包装器必须使用Winelib进行编译。然后,应用程序的其余部分可以使用您想要的任何框架。
https://stackoverflow.com/questions/276562
复制相似问题