在WPF,wxWidgets,Win32 API和MFC之间进行选择

时间:2009-10-24 12:16:22

标签: c++ user-interface winapi mfc

想象一下,您使用的是Windows 7,您必须为GRAPHIC应用程序编写GUI(如地形编辑器,网格浏览器......),这需要大量使用DirectX和OpenGL(因此用本机C ++编写)。 如果您的目标是多平台软件,那么您应该选择wxWidgets,但想象一下您正在使用Windows专用应用程序......您的选择是什么?为什么?

我认为该应用程序可以在XP和Vista / 7上运行,显然在WPF情况下UI将被管理,但它将通过C ++ / CLI代理类调用本机函数 (将从托管本机和本机管理导致性能问题“弹跳”?)。

10 个答案:

答案 0 :(得分:21)

RAD Studio也可以完成这项工作

  • 2010年增强! VCL(视觉 组件库)快速 构建Microsoft Windows 应用现在包括无缝 Windows 7支持,优雅 与Windows的后备兼容性 Vista,XP和2000
  • 2010年增强! Windows Vista和 完全支持Windows 7 API标头 利用最新的Windows 功能
  • 2010年新品!支持Windows 7 Direct2D API

您还可以使用Delphi Prism制作WPF,使用twinforms制作wxWidgets

答案 1 :(得分:12)

如果您对C ++技能感到满意,我建议使用WTL。它非常轻巧,可以生成精简的机器代码。 Windows版Chrome Chrome was written with WTL

答案 2 :(得分:9)

为了最大限度地缩短开发时间并最大限度地提高性能,我肯定会选择Delphi 2010(Rad Studio 2010)。您可以获得本机执行,与Windows 7 Direct2D API的直接接口,可以说是Windows 7上最好的IDE /开发环境之一。您还想要什么?

拉里德鲁斯 TheSoftwareRonin

答案 3 :(得分:7)

在WPF中,您实际上可以使用DirectX着色器对接口对象应用效果,(here'是详细说明开发方面的CodeProject文章),并且预计对此的支持将继续增长,所以我会选择WPF作为开发平台。此外,它专注于以合理的努力创建有吸引力的用户界面,我认为这对于构建面向图形的应用程序非常重要。

答案 4 :(得分:7)

您可能会考虑使用Qt,即使对于仅限Windows的应用程序,也只是因为Qt C ++ API非常好用。 Qt supports OpenGL,可与DirectX结合使用。

答案 5 :(得分:2)

会从托管本机和本机管理导致性能问题“反弹”吗?

肯定,但既然你只是编辑(一般不是游戏),那你就不应该担心

正如我所知,

由DirectX子系统呈现的WPF应用程序。因此,如果您只使用DirectX,那将是一个不错的选择。

答案 6 :(得分:2)

我个人会使用http://sourceforge.net/projects/win32-framework/在C ++中创建任何基于Windows的应用程序。否则我只会使用VB.Net或C#,因为您可以轻松地在两者之间移植代码,而表单设计器非常有用。

答案 7 :(得分:2)

请务必查看Cockos团队的WDL(“whittle”)(由Nullsoft / Winamp成名的Justin Frankel领导)。

这是一个非常轻量级的C ++库,包含“WDL虚拟窗口系统”。

我个人没有使用它,但我可以保证用它制作的一些很棒的软件。非常高效和轻量级的应用程序。

链接:WDL

答案 8 :(得分:1)

MFC       :: Just say NO for any kind of project.
Win32     :: Well, I can not really recommend using it.
wxWidgets :: I have used it and seen no problem, good choice.
WPF       :: I have not and never will use it as it is .Net bound.
FLTK      :: Also look at http://fltk.org/, probably has better OpenGL support.

答案 9 :(得分:1)

我无法真正评论wxWidgets,但WPF远远优于MFC和优秀的Win32 API。 WPF使用DirectX进行渲染,并且有一些3D support in WPF。不幸的是,这种支持仍然有些不成熟,而且性能最差。如果你托管一个呈现OpenGL的Windows窗体控件,你实际上可以获得更好的3D性能(至少我们必须在我最近的一个项目中这样做)。如果您想在WPF应用程序中进行3D渲染,可以查看XNA Framework。 .NET框架的下一个版本还将包括对WPF的改进,我相信会有更好的3D支持。