CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

将C#代码直接编译成机器代码的指令是什么?

楼主Aaron_Lau()2003-09-01 10:53:57 在 .NET技术 / C# 提问

在命令行下可以将C#代码直接编译成机器代码,这样就不需要在机器上装NET   FRAMEWORK   了,这样是否可行。编译的指定是什么。 问题点数:50、回复次数:11Top

1 楼xiaodele(小得乐)回复于 2003-09-01 11:26:52 得分 5

没有这个可能吧,你拿什么编译c#啊,基础没了,c#就什么都不是了Top

2 楼lxhvc(lxhvc)回复于 2003-09-01 11:43:12 得分 5

是呀,更本没有这样的方法和命令,不然干吗部署.NET程序的时候要安装FrameWork.  
  就是这个道理呀。所有.NET程序都被编译成中间语言,运行时才被FrameWork转译成及其码。  
  Top

3 楼Aaron_Lau()回复于 2003-09-01 11:57:58 得分 0

但JIT编译器最终还是要将其编译成机器代码。我想知道JIT是否提供了一个公共的接口来实现我样的功能。Top

4 楼Sunmast(速马@Redmond, WA)回复于 2003-09-01 12:07:08 得分 5

那是安装时编译,省得运行时再编译  
  不过一样少不了.NET   Framework的支持Top

5 楼doose()回复于 2003-09-01 12:34:59 得分 5

只能生成MSIL   Code吧Top

6 楼jjcccc(就这样吧)回复于 2003-09-01 12:39:58 得分 0

可以生成本机映象代码,但不能脱离.Net环境。Top

7 楼jjcccc(就这样吧)回复于 2003-09-01 12:52:28 得分 10

用Ngen.exe   MyAssembly   可以将MSIL(应用程序的全部程序集)代码编译为本机代码,并可以安装到本机映象高速缓存中。但不能删除原来的程序集和MSIL代码,因为仍需要元数据。  
  可以用资源管理器打开Winnt\Assembly目录,可以看到很多.Net的程序集的‘类型’为‘本机映象’。Top

8 楼_weiKun_(Virus)回复于 2003-09-01 12:52:28 得分 10

你得想法太超群了,.net只能通过ILDASM翻译成MSIL码,它和汇编语言差不多了。但只能紧紧如此。  
  Top

9 楼jjcccc(就这样吧)回复于 2003-09-01 13:13:35 得分 0

to     _weiKun_(Virus)   :  
  什么叫“.net只能通过ILDASM翻译成MSIL码”啊?  
  1.不是ILDASM(这是将MSIL翻译成类似汇编语言)  
  2.不是只能(难道Brorland或其它公司支持.Net的编译器就非得用微软的"ILDASM"(按你的说法)才能生成MSIL   ?)  
  Top

10 楼_weiKun_(Virus)回复于 2003-09-01 18:45:33 得分 0

呵呵,有人挺能咬文嚼字呀。Top

11 楼jjcccc(就这样吧)回复于 2003-09-01 21:47:51 得分 0

还是认真点好,否则容易误导。Top

12 楼cppTrier(修炼ing~~~)回复于 2003-09-01 21:54:31 得分 10

楼主有这样的想法实在是有趣,.net程序运行在虚拟机上,JIT编译器只是虚拟机的一个部分,虚拟机做的工作远不是   仅仅把IL转换成机器码那么简单。好比GC,就是虚拟机的一部分,C#程序要是没了GC,那么分配出去的内存就收不回来了。  
   
  要把C#程序转换成机器码,只要写一个新编译器,目标码改成汇编就可以了。但是反射、运行期类型支持、.net   remoting、以及最重要的GC   之类需要CLR支持的功能就不能用了,如果你的C#程序里用到了.net类库,那么楼主还需要把.net类库用COM的方法全部重新实现一遍,所以这个..不太现实吧。Top

相关问题

  • bcb能不能编译c++源代码。
  • 在visual.net中能编译C++代码吗?
  • mfc编译c代码的问题!!
  • 怎样用vs.net编译c++代码
  • 用命令行编译c++代码?
  • c++代码与c代码混用产生的编译问题
  • vc编译问题,pc上的c代码放到evc中编译时的错误:预编译头指令碰到意外文件结尾。(万望留步一看)
  • C代码中的编译选项问题 || C语法问题
  • c语言支持#pragma comment(lib,"*.lib")预编译指令吗??
  • Com被编译后可代码与C++被编译后的代码有什么区别??

关键词

  • .net
  • c#
  • 编译
  • 代码
  • 编译器
  • 虚拟机
  • 翻译
  • 安装
  • framework
  • msil

得分解答快速导航

  • 帖主:Aaron_Lau
  • xiaodele
  • lxhvc
  • Sunmast
  • doose
  • jjcccc
  • _weiKun_
  • cppTrier

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo