gpt4 book ai didi

c++ - 在可移植应用程序中使用 Windows DLL

转载 作者:IT王子 更新时间:2023-10-29 01:12:27 25 4
gpt4 key购买 nike

我构建了一个 Windows C++ 应用程序,我想将其移植到 Linux。这样做的主要原因是便于我们的 IT 员工进行系统维护。除了运行此应用程序的一台 Windows 机器外,我们仅在 Linux 上运行。

此应用程序内置于 Windows 并在 Windows 上运行的原因是它使用 Windows API(dll 和 header )连接到属于外部方的服务器。此连接使用了一些我不想乱用的专有协议(protocol)(而且我认为契约(Contract)上不允许这样做)所以我只能使用 .dll。

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

这个想法是受这个 item about QT creator 启发的所以任何允许我使用它的解决方案都会非常酷。

最佳答案

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

然后您可以将您的应用程序分成两部分:一个只调用 DLL 的包装器,以及与您的包装器通信的其余代码。您可以将两者放在不同的进程中,因此只有包装器必须使用 Winelib 进行编译。然后,应用程序的其余部分可以使用您想要的任何框架。

关于c++ - 在可移植应用程序中使用 Windows DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/276562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com