0

如果选择:

  • ATL
  • Windows 窗体
  • MFC
  • Win32

具体而言,该应用程序将是:

  • 完全在内部使用。
  • 大多数用户缺乏基本的 Windows/PC 知识。(考虑简单的用户界面)
  • 用于自动化测试,这需要:
    - 从外部设备引入大量数据(可以选择 VXI、USB 或以太网)
    - 非常依赖图形 - 可能是 directX
  • 应用程序的生命周期将超过 10 年(考虑未来的 Windows 平台等)
  • 用户在测试时将处于非常偏远的位置并离线,但可以每晚在线同步报告(现在用于数据库同步的单独应用程序) - 考虑程序更新挑战?
  • 程序速度增加了价值——这意味着我们获取和显示数据的速度越快,可以完成的测试就越多。除了程序之外,没有其他瓶颈,只是速度快一点=效率高一点。

同样,特别是 C++ - 而不是 C#。

谢谢,杰夫

4

4 回答 4

3

如果您不介意将自己绑定到 VC++,我会选择 ATL+WTL。它非常轻量级,并且仍然为原始 Win32 添加了一些抽象。MFC 也可以,我想,虽然我不是很喜欢它,但它比 WTL 有更好的文档记录。

至于 Windows 窗体,我会远离它,特别是如果你知道你将使用 C++。

于 2009-05-07T14:22:36.197 回答
2

远离 MFC。诚然,它被大量使用,但它是非惯用 C++ 使用的一个很好的例子。值得注意的是,它实现了自己的 RTTI 系统并重新实现了 STL 的部分内容。

ATL 的功能不是很丰富,但是有一个很好的扩展名为WTL。它也不是很好的 C++,但比 MFC 好得多。如果您对 GTK、Qt 等不感兴趣(大概是因为您希望框架变薄以便与 DirectX 等轻松集成),WTL 可能是您的最佳选择。

于 2009-05-07T14:23:08.880 回答
1

我在 WTL 和 MFC 方面都有丰富的经验,并且不会再选择 WTL 而不是 MFC。MFC 并没有那么糟糕,一旦你了解了要忽略哪些部分(文档/视图、CArchive、容器……)可用于 MFC 的帮助。使用 WTL,您几乎可以靠自己(除了 WTL 邮件列表和 viksoe.dk 上的示例代码)。

话虽如此,如果您无论如何都要在 DirectX 中进行繁重的工作,那么 UI 工具包就没有那么重要了。MFC 和 WTL 都可以处理一些表单和对话框;win32 工作量太大,对 MFC 或 WTL 没有附加价值,而来自 C++ 的 Windows 窗体是皮塔饼,而且速度很慢。再加上 Windows 窗体已经是老派了,至少 MFC 不会再有太大变化了 :)

于 2009-05-08T17:04:04.437 回答
1

我不认为 C++ Windows Forms 是一个有效的组合。至少它不在我安装的 VS 2008 中。

所以剩下的就是 ATL、MFC 和 Win32。都是旧的,但 Win32 是最旧的,所以我会删除它。

MFC 有很多外部支持(CodeProject.com 等),它有很好的文档记录,并且有很多人有 MFC 经验。查看此网站上 ATL 与 MFC 的主题数量。MFC 的帖子数量要多一个数量级。

MFC 似乎比 ATL 更常见。IMO,MFC 将是要走的路(鉴于选择有限)。

于 2009-05-07T14:29:14.403 回答