複製鏈接
請複製以下鏈接發送給好友

hello.exe

鎖定
hello.exe,一旦安裝了 .NET,您就可以使用記事本或 Visual Studio 創建包含前面的“Hello World”程序之一的文件。創建一個空的子目錄,將文件保存到該子目錄當中,並命名為 hello.cs(CS 表示為 C# 文件)。
外文名
hello.exe
步    驟
創建一個空的子目錄
顯示程序
打開命令提示並更改到正在使用
執行程序
列出目錄的內容

hello.exe顯示程序

打開命令提示並更改到正在使用的目錄。鍵入“csc hello.cs”命令來編譯該程序。如果在目錄中查看,您將發現已經創建了 hello.exe 文件。鍵入“hello”執行該文件,控制枱窗口將顯示“Hello, World!”。

hello.exe執行程序

可執行文件的內容,列出目錄的內容,請注意只有兩個文件:hello.cs 和 hello.exe。Hello.exe 是一個非常小的文件,只有 3 KB 左右。真簡單。
但是,hello.exe 文件中有些什麼?這就不那麼簡單了。有一個存根加載器,即很小的本機機器語言程序,它可加載 .NET Runtime 並給予其控制權以便使它開始執行您的程序。
但是兩個重要的部分是元數據和 IL 中的代碼,元數據向 Common Language Runtime 和可能引用程序中的類型的編譯器解釋該程序。(您可能會想起 IL 是 .NET Runtime 的機器語言。)當 Runtime 即將開始執行每種方法時,它將 IL 轉換為本機代碼,然後執行本機代碼。.NET 從來不解釋 IL,它總是將 LI 編譯成本機代碼。

hello.exe查看程序

如何查看元數據和 IL?使用 IL 反彙編 (ILDASM) 工具會使該操作變得非常簡單。只要在命令提示下輸入圖 “ILDASM hello.exe”(假設 hello.exe 文件在當前目錄下)就可以了。您可以看到一個如下顯示的窗口。
1:ILDASM 窗口
最初,“hello.exe”之下的目錄樹顯示兩個部分:清單和類 MyApp。由於模塊 hello.exe 有一個清單,所以我們知道它就是程序集的説明文件。在這種情況下,程序集僅包含一個模塊文件 hello.exe。
清單
雙擊清單將看到元數據的一小部分,這部分説明了這個程序集(應用程序或組件)中包含的模塊(文件)。對於第三個 hello.exe 程序,它看起來如下:
.assembly extern mscorlib {
.originator = (03 68 91 16 D3 A4 AE 33 )
.hash = (52 44 F8 C9 55 1F 54 3F 97 D7 AB AD E2 DF 1D E0
F2 9D 4F BC )
.ver 1:0:2204:21
}
.assembly hello as "hello" {
// --- 下面的自定義屬性是自動添加的
// 不要取消註釋 -------
// .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(bool,
bool) = ( 01 00 00 01 00 00 )
.hash algorithm 0x00008004
.ver 0:0:0:0
}
.module hello.exe
// MVID: {59365AA0-B469-4359-9BAF-4840A9257C61}
這個元數據聲明程序集 hello 的版本為 0.0.0.0,包含模塊 hello.exe,並且使用 1.0.2204.21 版本的 mscorlib 程序集(.NET Runtime 主 DLL)。模塊版本標識符 (MVID) 是一個包含此版本模塊 hello.exe 的 ID 的全局唯一標識符 (GUID)。