【问题标题】:Pros and Cons of the available Visual Studio 2008 c++ project platforms?可用的 Visual Studio 2008 c++ 项目平台的优缺点?
【发布时间】:2010-10-24 12:08:32
【问题描述】:
如果选择:
具体申请如下:
- 供完全内部使用。
- 大多数用户缺乏基本的 windows/pc 知识。 (考虑简单的用户界面)
- 用于自动化测试,这需要:
-从外部设备引入大量数据(可以选择 VXI、USB 或以太网)
-非常依赖图形 - 可能是 directX
- 应用程序的生命周期将超过 10 年(考虑未来的 Windows 平台等)
- 用户在测试时将处于非常偏远的位置并处于离线状态,但可以每晚在线同步报告(现在用于数据库同步的单独应用程序) - 考虑程序更新挑战?
- 程序速度增加了价值——这意味着我们获取和显示数据的速度越快,可以完成的测试就越多。除了程序之外,没有其他瓶颈,只是速度快一点=效率高一点。
再次,特别是 c++ - 不是 C#。
谢谢,
杰夫
【问题讨论】:
标签:
c++
winforms
winapi
mfc
atl
【解决方案1】:
如果您不介意将自己绑定到 VC++,我会选择 ATL+WTL。它非常轻量级,并且仍然为原始 Win32 添加了一些抽象。 MFC 也可以,我想,虽然我不是很喜欢它,但它比 WTL 有更好的文档记录。
至于 Windows 窗体,我会远离它,尤其是如果你知道你将使用 C++。
【解决方案2】:
远离 MFC。诚然,它被大量使用,但它是非惯用 C++ 使用的一个很好的例子。值得注意的是,它实现了自己的 RTTI 系统并重新实现了 STL 的部分内容。
ATL 的功能不是很丰富,但是有一个很好的扩展名为WTL。它也不是很好的 C++,但比 MFC 好得多。如果你对 GTK、Qt 之类的东西不感兴趣(大概是因为你希望框架更薄以便与 DirectX 等轻松集成),WTL 可能是你的最佳选择。
【解决方案3】:
我不认为 C++ Windows 窗体是一个有效的组合。至少它不在我安装的 VS 2008 中。
剩下的就是 ATL、MFC 和 Win32。都是旧的,但 Win32 是最旧的,所以我会删除它。
有很多对 MFC 的外部支持(CodeProject.com 等),它的文档相当完善,并且有很多人有 MFC 经验。查看此网站上 ATL 与 MFC 的主题数量。 MFC 的帖子数量要多一个数量级。
MFC 似乎比 ATL 更常见。 IMO,MFC 将是要走的路(鉴于选择有限)。
【解决方案4】:
我在 WTL 和 MFC 方面都有丰富的经验,并且不会再选择 WTL 而不是 MFC。 MFC 并没有那么糟糕,一旦你了解了要忽略哪些部分(文档/视图、CArchive、容器……)可用于 MFC 的帮助。使用 WTL,您几乎可以独立完成(除了 WTL 邮件列表和 viksoe.dk 上的示例代码)。
话虽如此,如果您无论如何都要在 DirectX 中进行繁重的工作,那么 UI 工具包就没有那么重要了。 MFC 和 WTL 都可以处理一些表单和对话框; win32 工作量太大,没有超过 MFC 或 WTL 的附加值,而来自 C++ 的 Windows 窗体是一个皮塔饼,而且速度很慢。再加上 Windows 窗体已经很老了,至少 MFC 不会再有太大变化了 :)