首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何决定对新的C++项目使用ATL、MFC、Win32还是CLR?

如何决定对新的C++项目使用ATL、MFC、Win32还是CLR?
EN

Stack Overflow用户
提问于 2009-05-04 19:47:29
回答 6查看 48.3K关注 0票数 75

我刚刚开始了我的第一个C++项目。我使用的是Visual Studio 2008。它是一个单一表单的Windows应用程序,可以访问几个数据库并启动一个WebSphere MQ事务。我基本上理解ATL,MFC,Win32 (实际上我对这一点有点模糊)和CLR之间的区别,但我不知道该如何选择。

其中的一个或多个只是为了向后兼容吗?

Is CLR a bad idea

如有任何建议,欢迎光临。

编辑:我为这个项目选择了C++,原因是我没有在帖子中详细介绍,这些原因并不完全是技术上的。那么,假设C++是唯一/最佳选项,我应该选择哪一个?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-05-04 19:53:42

这取决于您的需求。

使用CLR将为您提供最具表现力的一组库(整个.NET框架),代价是将您的可执行文件限制为要求在运行时安装.NET框架,以及将您限制为Windows平台(然而,列出的所有4种技术都只是windows,因此平台限制可能是最不麻烦的)。

但是,CLR要求您使用C++语言的C++/CLI扩展,因此,本质上,您需要学习一些额外的语言特性才能使用它。这样做可以为您提供许多“额外功能”,例如访问.net库、完全垃圾回收等。

ATL和MFC之间的选择比较棘手。我建议您参考MSDN's page for choosing,以便在它们之间做出选择。关于ATL/MFC的好处是你不需要.NET框架,只需要安装VC/MFC运行时进行部署。

直接使用Win32可以提供最小的可执行文件,具有最少的依赖项,但是需要编写更多的工作。您拥有的帮助器库数量最少,因此您需要编写更多的代码。

票数 71
EN

Stack Overflow用户

发布于 2009-05-04 19:58:01

Win32是一种原始的裸机方式。它单调乏味,难以使用,而且有很多小细节你需要记住,否则事情就会以相对神秘的方式失败。

MFC构建于Win32之上,为您提供了一种面向对象的方法来构建应用程序。它不是Win32的替代品,而是一种增强--它为你做了很多困难的工作。

System.Windows.Forms (我假设你所说的CLR)完全不同,但从其基本结构来看,它与MFC有很大的相似之处。到目前为止,它是最容易使用的,但需要.NET框架,这在您的情况下可能会也可能不会成为障碍。

我的建议:如果你需要避免使用.NET,那么使用MFC,否则使用.NET (实际上,在这种情况下,我会使用C#,因为它更容易使用)。

票数 26
EN

Stack Overflow用户

发布于 2009-05-04 19:58:29

至于C++,我会使用WTL。它是轻量级的,并且您将有很少的依赖项(如果有的话),这使得它易于发布和安装。我发现这是非常令人满意的,当我的应用程序由一个单一的EXE,将在大多数版本的Windows上运行,但这可能不是你关心的问题。

如果您选择使用.NET,那么几乎可以肯定使用C#是可行的。

有关WTL的更多信息,请单击此处:

http://www.codeproject.com/KB/wtl/wtl4mfc1.aspx

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/821676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档