【问题标题】:Which toolkit should I use to make an easily editable and modern looking GUI for existing c++ code?我应该使用哪个工具包来为现有的 c++ 代码制作易于编辑且外观现代的 GUI?
【发布时间】:2011-06-08 12:27:34
【问题描述】:

我正在开始一个新的小项目,其中缺少图形界面和一些杂乱无章的数据,但是代码的复杂和时间关键部分存在并且是用 c/c++ 编写的。以前我使用 win32 api、MFC 来做图形,但我想要一些更现代、更新的东西,以及更容易维护和更新的东西。我应该提一下,我也想尝试并学习一些新东西......

几年前,我尝试使用 pinvoke 将 c++ 组件集成到 c#。结果很乱。不过那是很久以前的事了……

有什么建议吗?我应该使用什么?

先决条件:Windows(XP 或 7)和 VS 2005、2008 或 2010。Eclipse 也应该可以正常工作。

【问题讨论】:

    标签: c++ user-interface


    【解决方案1】:

    您可以尝试 QT 或 wxWidgets,它们都是很好的 C++ GUI 工具包。 如果您在 c++ 代码中没有太多入口点,您可以将它们包装在几个 C# 类中并使用 WPF 或 windows 形式(.NET 4 或 2)。无论如何,这需要“混合托管和非托管代码”。

    【讨论】:

    • 是的,qt 和 wxWidgets 都是开源的。我建议您使用 QT:它具有 LGPL 许可证,并且非常漂亮且跨平台
    • C# 需要 Windows,但除此之外 .NET 和 Visual Studio Express 都是免费的。
    • 预算用于附加软件。我已经有 VS 2005、2008 和 2010。
    • 此答案包含基本选项。如果您已经在 Visual Studio 中进行开发,C# 可能是一个不错的选择。我经常在需要时将 Interop 与非托管 c/c++ dll 一起使用,并将其余部分保留在 C# 中。它工作得非常好,开发速度很快,至少对我来说是这样。
    【解决方案2】:

    我自己已经很久没有尝试过了,但据我所知,.NET 与托管/本机的集成这些天非常好:

    • 不需要额外的修补或依赖;当项目在 Visual Studio 中时,您就可以开始了,
    • 相当直接的 GUI 编码,
    • 易于维护,
    • 您为 GUI 选择的任何语言:C#、F#、J#、托管 C++ and more(当您想尝试新事物时会派上用场)。

    【讨论】:

      【解决方案3】:

      我建议使用 C++/CLI (又称托管 C++)在 C# 和 C++ 之间进行集成。主要项目是 C++/CLI,使用 C# 类进行可视化设计的 GUI。不需要pinvoke。所有代码(GUI 和库部分)甚至可以包含在单个可执行文件中(但取决于 .Net 的存在)。

      如果预算不是障碍(在这种情况下约为 150 美元),我还会提到 C++Builder - 可视化 GUI 设计和本机可执行文件(不依赖 .Net)

      【讨论】:

      • 托管 c++/CLI 的性能与标准 c++ 相比如何?慢的?一样吗?
      • 当使用非托管 C++ 子集时,它与标准 C++ 相同,调用托管部分可能会带来一些损失,但在 GUI 的情况下应该不会引起注意。
      • 如何将c#与c++连接起来?除了使用 dllImport 等,我找不到任何方法。变得非常缓慢......
      • 从 Visual C++/CLR 组创建一个新项目。之后,您可以以通常的方式使用 C# 代码添加对 DLL 库的引用。 Intellisense 将了解导入的 C# 类周围的 C++ 语法包装器。同样,您可以在 C# 项目中添加对 C++/CLR 类库的引用。
      【解决方案4】:

      您使用 QT 编写 GUI,并链接到您现有的 C++ 代码。

      【讨论】:

        猜你喜欢
        • 2010-10-21
        • 2012-03-12
        • 2020-09-24
        • 1970-01-01
        • 1970-01-01
        • 2020-10-19
        • 2013-06-12
        • 2011-09-09
        • 1970-01-01
        相关资源
        最近更新 更多