【发布时间】:2009-11-13 18:18:01
【问题描述】:
我有一个用 C++ 编码的数值库。
我将为图书馆制作一个 UI。我知道一些MFC。因此,一种解决方案是使用 MFC 并制作原生应用程序。
替代方案是 C#。我对C#一无所知。但我认为它应该很容易学习。
一些 C++ 和 C# 混合编程的教程对我很有帮助。
谢谢!
阴
【问题讨论】:
我有一个用 C++ 编码的数值库。
我将为图书馆制作一个 UI。我知道一些MFC。因此,一种解决方案是使用 MFC 并制作原生应用程序。
替代方案是 C#。我对C#一无所知。但我认为它应该很容易学习。
一些 C++ 和 C# 混合编程的教程对我很有帮助。
谢谢!
阴
【问题讨论】:
我建议通过 C# 为您的 GUI 使用 Windows 窗体或 WPF。
获取您的数值库,并使用 C++/CLI 为其创建一个 .NET 包装器。这使得从 C# 中使用变得微不足道(它看起来像任何其他 C# 库)。
我强烈推荐 CodeProject 上的 Nishant Sivakumar's C++/CLI articles 来学习 C++/CLI 以及如何包装 C++ 库。他们写得相当好。
MSDN 是如何使用Windows Forms from C# 的一个很好的参考。
【讨论】:
使用WinForms or WPF 用C# 编写您的GUI,并通过Platform Invoke 调用您的本机代码。
您可能想要考虑使用 C++/CLI 为您的本地库创建一个 .NET 包装器,而不是 P/Invoke。
恕我直言,使用 C# 比 MFC 容易得多,因此您走在正确的轨道上。
【讨论】:
您可以非常轻松地使用 C# 来制作 UI。您需要编写一个简单的包装类来调用您的非托管 dll,但这很简单。查看有关该主题的msdn page
【讨论】:
使用 C#。 MFC 有点过时了,所以如果您需要学习一些东西 - 使用更新的技术,请不要在 MFC 上浪费您的时间。 我会选择 WPF,学习曲线相当陡峭,但它很有趣。
【讨论】:
我建议调查SWIG。您可以在 C++ 中将代码的核心部分编写为 dll,然后有一个针对它的 C# UI 链接。
【讨论】:
如果您有 C++ 数值库的源代码,您可以修改它以编译为 C++/CLI,然后您可以像任何其他 .NET 库一样链接到它。使用#defines for C++/CLI 条件编译修改源代码不需要大量工作。
【讨论】: