none
Win7 中的C++程序在哪个层次运行呀? RRS feed

  • 问题

  • Win7 中的C++程序在哪个层次运行呀?

    是像以前一样直接调用系统内核运行,还是在.Net 平台中的模拟器上被运行呢?

    另外,Win7以后, C++程序和C#程序的运行效率大致差多少?

    谢谢

    Charles Shao

    2010年2月26日 8:02

答案

  • 1) 这个windows 7 操作系统没有太大关系,在Windows XP 2008 等等操作系统上都是一样的
    2) 原生代码(native code) 肯定是直接运行在操作系统上的;托管代码(managed code) 要运行在.NET CLR 上面
    3) native code C++ 代码和 C# 程序完成同样的功能,在某些情况下性能差距是几十倍甚至上百倍的。典型的native code C++ 代码高性能的情景: 创建、调用COM 对象。大量的IO 等等

    • 已建议为答案 lu0 2010年3月4日 12:03
    • 已标记为答案 Nancy Shao 2010年3月5日 3:21
    2010年2月26日 10:26
    版主

全部回复

  • 补充一下,我指的是纯二进制的 C++或MFC程序。  不是C++.Net
    2010年2月26日 8:03
  • 1) 这个windows 7 操作系统没有太大关系,在Windows XP 2008 等等操作系统上都是一样的
    2) 原生代码(native code) 肯定是直接运行在操作系统上的;托管代码(managed code) 要运行在.NET CLR 上面
    3) native code C++ 代码和 C# 程序完成同样的功能,在某些情况下性能差距是几十倍甚至上百倍的。典型的native code C++ 代码高性能的情景: 创建、调用COM 对象。大量的IO 等等

    • 已建议为答案 lu0 2010年3月4日 12:03
    • 已标记为答案 Nancy Shao 2010年3月5日 3:21
    2010年2月26日 10:26
    版主
  • 托管C++代码在CLR上运行
    非托管C++代码直接在CPU中执行。
    内存足够、CPU支持CLR的优化、算法写得好的话,托管、非托管性能没有太大差距


    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
    Visual C++ MVP
    2010年2月26日 16:00
    版主
  • C++写的驱动程序运行在内核态,非驱动运行在用户态。

    .NET程序才需要.NET平台。要是直接的C++程序都是直接运行的,CLR这种程序其实应该算是.NET程序不能严格的算真正的C++程序。

    C++和C#开发面向的目的不同,C++注重于高效的程序,C#注重于开发的简便。理论上来说C++效率高于C#,不过要看具体环境,一般情况下差别不大。


    0xBAADF00D
    2010年2月28日 16:40
    版主
  • C++写的驱动程序运行在内核态,非驱动运行在用户态。

    .NET程序才需要.NET平台。要是直接的C++程序都是直接运行的,CLR这种程序其实应该算是.NET程序不能严格的算真正的C++程序。

    C++和C#开发面向的目的不同,C++注重于高效的程序,C#注重于开发的简便。理论上来说C++效率高于C#,不过要看具体环境,一般情况下差别不大。


    0xBAADF00D

    3句话错了2句半,当版主的话,不懂的领域不要胡说。
    2010年3月4日 12:09
  • 3句话错了2句半?

    我虽然也不认同Vonger版主的话,但也不至于这么惨吧。

    2010年5月4日 11:36