c、++、c#它们之间关系如何?C#的源文件编译成可执行文件,需不需要先把它们转换为C或C++源文件然后再进行编译?用C#进行开发时,集成开发环境里提供的许多类、函数或方法都是用C#语言写成的么?所有经过编译器编译成功可执行的exe文件,是不是都是二进制的机器码呀,是不是可以脱离开发平台,运行在各种操作系统之上?
希望大家可以解解心中一直存在的疑惑?

解决方案 »

  1.   

    (1)C#和C++完全没有关系。所以不存在什么把C#代码编译为C++再编译的说法。
    (2)基本是,也有用汇编或者C++写的。
    (3)不是,是 IL 代码(链接器会在前面附加一个标准的机器代码的头,因此在没有 .NET 的环境下也能运行,只是直接提示一个错误就退出。如同一个 Windows 程序在 DOS 下也能运行,并且输出一行字: this program can not run under dos mode)。
      

  2.   


    虽然大家都说 C#和C++完全没有关系;但是我却觉得二者非常相似;他们都是用的Api的,只不过C++尤其是Mfc只封装了一小部分,剩下的要直接使用,而.net把大部分Api封装起来,放到了CLR中;
    所以运行时C++不需要装.net,但是实际上他也需要运行库的,只不过库比较小,而且现在的Windows大多数已经集成了C++库文件,过几年后,大家都淘汰了XP以及以下版本的windows,就都不用装庞大的.net库了
      

  3.   

    本帖最后由 caozhy 于 2011-06-29 01:02:05 编辑
      

  4.   

    C和C++有关系的 都是面向对象的 C语言学的号更牛逼些,病毒,驱动,嵌入式,都可以用C的 更底层
      

  5.   

    C++与C#没有关系...
    C++是工业标准,是工业级编程语言,是高性能,功能超强的,OS,Database,嵌入式..大型应用软件,都有它的身影
    C#是微软的宠儿,语法糖很多,只有自已的标准,性能较差,功能上只能写些普通的应用型的软件.适应Windows的发展..仅此罢了