【问题标题】:MFC app to Linux dllMFC 应用程序到 Linux dll
【发布时间】:2013-02-16 00:23:33
【问题描述】:

目前我们有一个用 MFC(服务器)和 Java(客户端)编写的遗留客户端/服务器系统。由于各种原因,该系统无法在 Internet 上运行。所以,我们正在开发一个小系统(这个遗留系统的功能很少),用 cake php 等来满足客户的需求。

现在,旧系统中的一项功能需要在这个新系统中使用。我们正在考虑制作该代码的 DLL,然后将其与 cake php 集成(以节省时间),但该 DLL 无法在新系统所在的 Linux 上运行。

那么,有没有什么办法可以生成一个dll,以便它在使用QT等的Linux系统中与php一起工作?

我们必须重写整个事情吗?在这种情况下,最适合开发跨平台 dll 的框架是什么。我更喜欢用Windows来写。

另外,我们可以用 cake php 运行 dll 吗?

谢谢

【问题讨论】:

  • windows DLLs 在 linux 上工作的唯一方法是 wine。你需要用 PHP 重写你的整个代码。 MFC 不能在 linux 上运行,所以 Qt 是一个不错的选择。
  • 这需要更多细节。移植此代码的最佳策略完全取决于它的功能和它使用的 API。正如 Aleksandar 指出的那样,如果您的依赖项很简单(例如仅 win32 调用),Wine/winelib 可能是一个不错的选择。如果您有更复杂的需求,您可能会考虑在您的 Linux 系统上作为 VM 来宾运行“真实”窗口,并编写一些 shim 代码以通过本地套接字从 PHP 与您的 Windows 服务器通信,等等……但细节很重要,我们无法告诉你如何移植我们从未见过的代码。
  • 感谢您的 cmets,它没有过于复杂的功能。由于此代码是大型 MFC 应用程序的一部分,我想重用此代码并将其放入库中,以便在 Linux 上运行 php 东西。主要是使用 MFC 的 CString、CStringList 等列表类、用于 ODBC 连接的 SQL API。我希望它能更清楚地说明要求。

标签: c++ linux cakephp dll mfc


【解决方案1】:

那么,有没有什么办法可以生成一个dll,以便它在使用QT等的Linux系统中与php一起工作?

不,Linux 不支持 DLL 文件格式。您可能希望从源代码编译 ELF 格式的共享对象文件。

【讨论】:

    【解决方案2】:

    我认为,两个最突出的跨平台 GUI 库是 wxWidgetsQt

    您不能将 Windows DLL 用作 Linux 应用程序的一部分。这是不可能的,因为对象格式不同。

    所以,唯一的选择就是以某种形式重写或移植它。

    您的应用程序移植指南可能是 Porting MFC applications to Linux,它使用 wxWidgets。

    另一个使用Qt,可能是MFC to Qt Migration - Walkthrough

    【讨论】:

      猜你喜欢
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      相关资源
      最近更新 更多