我刚刚开始我的第一个 C++ 项目。我正在使用 Visual Studio 2008 。它是一个单一形式的 Windows 应用程序,它访问几个数据库并启动一个 WebSphere MQ 事务。我基本上了解 ATL、MFC、Win32(我实际上对那个有点模糊)和 CLR 之间的区别,但我不知道应该如何选择。
其中一个或多个只是为了向后兼容吗?
CLR 是个坏主意 吗?
任何建议表示赞赏。
编辑: 我为这个项目选择了 C++,因为我没有在帖子中提到,这并不完全是技术性的。那么, 假设 C++ 是唯一/最好的选择,我应该选择哪个?
原文由 John M Gant 发布,翻译遵循 CC BY-SA 4.0 许可协议
这取决于您的需求。
使用 CLR 将为您提供最具表现力的库集(整个 .NET 框架),但代价是将您的可执行文件限制为要求在运行时安装 .NET 框架,以及将您限制在 Windows 平台上(但是,所有列出的 4 种技术都只是 windows,因此平台限制可能是最不麻烦的)。
但是,CLR 要求您使用 C++ 语言的 C++/CLI 扩展,因此本质上,您需要学习一些额外的语言特性才能使用它。这样做可以为您提供许多“附加功能”,例如访问 .net 库、完整的垃圾回收等。
ATL 和 MFC 之间的选择有些棘手。我建议您参考 MSDN 的页面进行选择,以便在它们之间做出决定。 ATL/MFC 的好处是您不需要 .NET 框架,只需安装 VC/MFC 运行时即可进行部署。
直接使用 Win32 提供了最小的可执行文件,具有最少的依赖项,但需要编写更多的工作。您拥有最少数量的帮助程序库,因此您编写的代码更多。