记事本写c#代码编译并理解编译执行原理
2014-05-04 18:27
363 查看
1、在记事本里编写c#代码,将文件保存为ProgramTest.cs:
2、在控制台编译,使用csc命令编译;
注意完整写法:csc.exe /out:ProgramTest.exe /t:exe /r:MSCorLib.dll ProgramTest.cs ,其中t:exe表示生成的文件属于Win32控制台应用程序类型(/t[arget]:exe)。
3、执行后就得到了一个exe文件,我们通过ILDASM开打我们生产的exe文件,如下图:
4、查看文件的视图详细信息
5、查看文件的统计信息;
指定以下任何一个命令行开关,C#编译器都会生成一个程序集:/t[arget]:exe,/t[arget]:winexe或者/t[arget]:library。所有这些开关都会造成编译器生成含有清单元数据表的一个PE文件。最终生成的文件分别是CUI执行体、GUI执行体或者DLL。
CLR并不是开始就加载所有的可能用到的程序集,只有用到的时候才会去加载,因此可以解释为什么有时候系统在运行其他功能的时候正常,但是运行某一个功能的时候提示加载xx程序集失败错误。
namespace huangxiangTestDemo { class ProgramTest { static void Main() { System.Console.WriteLine("hello world"); System.Console.ReadKey(); } } }
2、在控制台编译,使用csc命令编译;
注意完整写法:csc.exe /out:ProgramTest.exe /t:exe /r:MSCorLib.dll ProgramTest.cs ,其中t:exe表示生成的文件属于Win32控制台应用程序类型(/t[arget]:exe)。
3、执行后就得到了一个exe文件,我们通过ILDASM开打我们生产的exe文件,如下图:
4、查看文件的视图详细信息
5、查看文件的统计信息;
指定以下任何一个命令行开关,C#编译器都会生成一个程序集:/t[arget]:exe,/t[arget]:winexe或者/t[arget]:library。所有这些开关都会造成编译器生成含有清单元数据表的一个PE文件。最终生成的文件分别是CUI执行体、GUI执行体或者DLL。
CLR并不是开始就加载所有的可能用到的程序集,只有用到的时候才会去加载,因此可以解释为什么有时候系统在运行其他功能的时候正常,但是运行某一个功能的时候提示加载xx程序集失败错误。
相关文章推荐
- C#实现将记事本中的代码编译成可执行文件的方法
- 使用 C# 动态编译代码和执行的代码
- C#程序集系列01,用记事本编写C#,IL代码,用DOS命令编译程序集,运行程序
- 如何用C#动态编译、执行代码[转]
- 运行时编译并执行C#代码
- 如何用C#动态编译应用程序来执行自定义代码
- 04把记事本文件中的代码编译成可执行文件
- 如何用C#动态编译、执行代码
- 动态编译执行c#代码
- C#代码动态编译、动态执行、动态调试(转载)
- C#代码动态编译、动态执行、动态调试
- C#动态编译、执行代码
- 动态编译执行C#代码
- 如何用C#动态编译、执行代码
- 如何用C#动态编译、执行代码
- 运行时动态将字符串编译为C#可执行代码
- 深入理解 Java 虚拟机-Java 代码编译和执行的整个过程
- 动态编译执行C#代码
- C#代码动态编译、动态执行、动态调试
- 艾伟:C#代码动态编译、动态执行、动态调试