【问题标题】:C# for UI, c++ for libraryC# 用于 UI,c++ 用于库
【发布时间】:2009-11-13 18:18:01
【问题描述】:

我有一个用 C++ 编码的数值库。

我将为图书馆制作一个 UI。我知道一些MFC。因此,一种解决方案是使用 MFC 并制作原生应用程序。

替代方案是 C#。我对C#一无所知。但我认为它应该很容易学习。

一些 C++ 和 C# 混合编程的教程对我很有帮助。

谢谢!

【问题讨论】:

    标签: c# c++ mfc


    【解决方案1】:

    我建议通过 C# 为您的 GUI 使用 Windows 窗体或 WPF。

    获取您的数值库,并使用 C++/CLI 为其创建一个 .NET 包装器。这使得从 C# 中使用变得微不足道(它看起来像任何其他 C# 库)。

    我强烈推荐 CodeProject 上的 Nishant Sivakumar's C++/CLI articles 来学习 C++/CLI 以及如何包装 C++ 库。他们写得相当好。

    MSDN 是如何使用Windows Forms from C# 的一个很好的参考。

    【讨论】:

      【解决方案2】:

      使用WinForms or WPF 用C# 编写您的GUI,并通过Platform Invoke 调用您的本机代码。

      您可能想要考虑使用 C++/CLI 为您的本地库创建一个 .NET 包装器,而不是 P/Invoke。

      恕我直言,使用 C# 比 MFC 容易得多,因此您走在正确的轨道上。

      【讨论】:

      • P/Invoke 如果它是一个真正的 C++ 库,那么它是很困难的。您几乎必须为您的库提供一个 C API 才能使用它。 C++/CLI 更具表现力。
      • 当然取决于他的 C++ 库的接口。如果它简单而简短,P/Invoke 就可以了。
      【解决方案3】:

      您可以非常轻松地使用 C# 来制作 UI。您需要编写一个简单的包装类来调用您的非托管 dll,但这很简单。查看有关该主题的msdn page

      【讨论】:

        【解决方案4】:

        使用 C#。 MFC 有点过时了,所以如果您需要学习一些东西 - 使用更新的技术,请不要在 MFC 上浪费您的时间。 我会选择 WPF,学习曲线相当陡峭,但它很有趣。

        【讨论】:

          【解决方案5】:

          我建议调查SWIG。您可以在 C++ 中将代码的核心部分编写为 dll,然后有一个针对它的 C# UI 链接。

          【讨论】:

            【解决方案6】:

            如果您有 C++ 数值库的源代码,您可以修改它以编译为 C++/CLI,然后您可以像任何其他 .NET 库一样链接到它。使用#defines for C++/CLI 条件编译修改源代码不需要大量工作。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-08-17
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多