代码之家  ›  专栏  ›  技术社区  ›  Joshua Carmody

用C++开发Win32应用程序比用.NET开发有什么优势。C#中的.NET应用程序?

  •  16
  • Joshua Carmody  · 技术社区  · 17 年前

    我学习了使用Visual C++和Win32 API进行windows编程。如今,似乎大多数应用程序都是在中开发的。NET使用C#。我了解到,在大多数情况下,本机代码和托管代码之间没有太大的性能差异。所以我想知道,如果我今天开始编写一个新的桌面应用程序,是否有任何理由(除了我更熟悉C++的事实),我可能想用非托管的C++而不是。网?使用C++和本机代码还有一些优势吗?或者这种方法或多或少被取代了。NET在Windows平台上运行?

    9 回复  |  直到 17 年前
        1
  •  14
  •   Inisheer    17 年前

    对于小型可下载应用程序来说,IMO最重要的一点是本机代码不需要。NET运行时。虽然宽带变得越来越普遍,但并不是每个人都有。

        2
  •  18
  •   Adrian Grigore    17 年前
    • 性能(某些情况,如图形)
    • 内存占用(正如曼库索所说)
    • 使用现有库
    • 无需运行时

        3
  •  8
  •   Daniel LeCheminant    17 年前

        4
  •  7
  •   olli-MSFT    17 年前

    托管代码 .NET/C#是一个很好的平台。

    1. 性能损失可以忽略不计
    2. 非托管C++在以下方面有很大的缺点 。它很笨重,不灵活。反射允许托管代码使这些事情变得非常方便。
    3. 部署是一个小问题。但是,创建一个检查必要内容的设置。NET的先决条件并自动安装它们是显而易见的。
    4. 编译速度更快, 无链接器 !当你编辑代码时,它甚至会在后台发生。
    5. 图书馆支持
    6. 安全 !再见,缓冲区溢出、指针错误、变量未初始化。..
    7. 异常 。在中清除异常层次结构。网。C++的异常是一团糟。
        5
  •  2
  •   Nicholas Mancuso    17 年前

    内存占用。但是,除非你在为严重残疾的机器内存开发,否则对于大多数应用程序来说,这真的不应该是一个问题。

        6
  •  2
  •   nixps    17 年前

    如果你能负担得起对堆栈的依赖,那就去吧。网 现代、优雅、强大,因此开发速度更快。

    但要意识到,你将你的应用程序与它联系起来——与语言和框架联系起来,如果你预见到未来你可能想逃避这一点,那么最好三思而后行。

    Win32既旧又笨重,但它几乎可以在任何Windows版本上运行,而不需要额外的依赖关系,你的代码可以用简单、可移植的C/C++编写。

        7
  •  2
  •   Tim    17 年前

        8
  •  0
  •   James    17 年前

        9
  •  0
  •   William Egge    9 年前

    .Net程序可能会被恶意软件破坏。网络配置,本机只会继续运行,几乎不受操作系统更新的影响。

    .Net程序启动缓慢,感觉迟钝,原生程序启动快,运行快。

    .Net必须针对最低公分母(大多数分布式框架版本)进行编码,Native将所有代码编译到应用程序中,因此请使用您想要的代码。

    推荐文章