码迷,mamicode.com
首页 > 其他好文 > 详细

记事本写c#代码编译并理解编译执行原理

时间:2014-05-10 09:48:43      阅读:315      评论:0      收藏:0      [点我收藏+]

标签:c#编译   编译原理   pe头文件   il   

1、在记事本里编写c#代码,将文件保存为ProgramTest.cs:

namespace huangxiangTestDemo
{
   	class ProgramTest
	{
		static void Main()
		{
			System.Console.WriteLine("hello world");
			System.Console.ReadKey();
		}
	}
}

2、在控制台编译,使用csc命令编译;

bubuko.com,布布扣

注意完整写法:csc.exe /out:ProgramTest.exe /t:exe /r:MSCorLib.dll ProgramTest.cs ,其中t:exe表示生成的文件属于Win32控制台应用程序类型(/t[arget]:exe)。

3、执行后就得到了一个exe文件,我们通过ILDASM开打我们生产的exe文件,如下图:

bubuko.com,布布扣

4、查看文件的视图详细信息

bubuko.com,布布扣

5、查看文件的统计信息;

bubuko.com,布布扣


       指定以下任何一个命令行开关,C#编译器都会生成一个程序集:/t[arget]:exe,/t[arget]:winexe或者/t[arget]:library。所有这些开关都会造成编译器生成含有清单元数据表的一个PE文件。最终生成的文件分别是CUI执行体、GUI执行体或者DLL。
       CLR并不是开始就加载所有的可能用到的程序集,只有用到的时候才会去加载,因此可以解释为什么有时候系统在运行其他功能的时候正常,但是运行某一个功能的时候提示加载xx程序集失败错误。

记事本写c#代码编译并理解编译执行原理,布布扣,bubuko.com

记事本写c#代码编译并理解编译执行原理

标签:c#编译   编译原理   pe头文件   il   

原文地址:http://blog.csdn.net/huangxiangec/article/details/24996903

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!