gpt4 book ai didi

.net - Win32 控制台应用程序与 CLR 控制台应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 13:31:33 25 4
gpt4 key购买 nike

我正在处理一个我不打算使用 .NET 库或工具开发或部署的 C++ 项目,这意味着我可以使用 Visual Studio Win32 控制台应用程序创建它。但是,我听说在 Visual Studio 下使用 CLR 应用程序时的调试能力要强大得多。所以我有几个问题:

  1. 即使您不使用任何 .NET 库或其他资源,拥有 CLR 应用程序与 Win32 应用程序相比,是否真的可以为您的开发过程增加功能?

  2. 如果是这样,即使我正在使用 STL 等开发纯 C++ 项目而不利用任何 .NET 功能?或者这样的项目是否需要根本性的差异,这将使恢复变得非常重要,这意味着我应该坚持使用 Win32 控制台应用程序?

最佳答案

底线答案,如果您从不打算在您的应用程序中使用 CLR 或任何 .Net 对象,只需使用普通的 Win32 C++ 库即可。做任何其他事情都会让你痛苦。

现在,要回答有关调试的原始问题,是的,使用 CLR 进行调试比调试普通 C++ 应用程序具有某些优势。从 Visual Studio 2005 开始,C# 和 VB.Net 开始专注于让变量在 locals/autos/watch 窗口中显示更有值(value)。它主要是通过引入.Net 属性(例如DebuggerDisplay、DebuggerTypeProxy 和可视化框架)来完成的。

如果您不使用任何 .Net 类型,您将无法获得这些好处。

C++ 表达式计算器不利用其中任何一个。它有自己的自定义类型显示的方法。但它不像属性样式那样有特色(或潜在危险),因为它不允许代码在被调试进程中运行。

这并不是说调试 C++ 会提供糟糕的体验。它只是不同,并且对于许多 STL 容器类型有更好的显示。

调试 CLR 应用程序也有一些缺点。例如,调试优化代码有时几乎是不可能的,因为 JITer 会隐藏局部变量、参数,通常还有“this”。调试类似构造的 C++ 应用程序也可能令人沮丧,但您始终可以捕获寄存器并以不同的方式查看发生了什么。对 CLR 应用程序执行相同的操作充其量是困难的。

关于.net - Win32 控制台应用程序与 CLR 控制台应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31278283/

25 4 0
文章推荐: HTML 下拉菜单 : "nav ul ul ul li" Too Low
文章推荐: java - 如何在自定义 Android 应用程序中实现 "share on whatsapp"功能?
文章推荐: jquery - 操纵没有类或 ID 的特定
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com