c++ - 逐步将 Delphi 移植到 C++

标签 c++ delphi qt

我有一个用 Delphi 编写的大型应用程序。我想更新它,从用户界面开始。我考虑过使用新的 Qt。在更新的过程中,我想把编程语言改成C++。 有没有办法逐步重写应用程序(从 UI 开始)以更改为 C++?

感谢您的帮助。

最佳答案

最佳行动方案在很大程度上取决于 C++ 开发环境。

如果是 C++ Builder 你有两种可能:

  • 使用运行时包而不是普通的 DLL。当涉及到字符串编码和将类层次结构映射到平面 DLL 函数时,这会让您省去很多麻烦。

  • 使用混合代码。您可以在同一个项目中混合使用 Delphi/Pascal 代码和 C++ 代码。 (尽管单个模块/单元中只有一种语言)

如果是其他任何C++编译器:

  • 按照您建议的方式使用 DLL。您必须创建某种层/外观来将类的功能映射到平面 DLL 函数。

  • 即使您使用的是 C++ Builder,如果您想使用普通的 DLL 方式,您可以尝试使用共享内存管理器,如 ShareMem(Delphi 附带)或 FastMM (SourceForge) 以允许传递 string 而不是 PChar

  • 创建 .objs 而不是 .dcus,以便两个编译器使用相同的输出格式。然后将它们直接链接到您的 C++ 程序中。这与创建 DLL 基本相同,但它是静态的。您将在编译时而不是运行时发现某些类型的错误。

关于c++ - 逐步将 Delphi 移植到 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/877193/

相关文章:

c++ - gdbinit、 pretty-print 和相关目录?

c++ - 赋予容器其子代的所有权,但让子代使用智能指针存储对其父代的引用

delphi - 在 Firemonkey 中使用 JPG

c++ - QRegularExpression查找文件名的数字部分

c++ - boost 继续恢复断言失败

c++ - 使用Winsock的send()/recv()时,确认响应是否必要?

delphi - ClientDataSet 过滤器包含 "NOT LIKE"

delphi - Delphi 中以编程方式启动屏幕

c++ - 在具有多重采样的 QGLFramebufferObject 中使用 sRGB 颜色

qt - SplitView 项目内的 MouseArea 将鼠标事件从 Splitview 句柄中移走