hello.exe

hello.exe

hello.exe,一旦安裝了 .NET,您就可以使用記事本或 Visual Studio 創建包含前面的“Hello World”程式之一的檔案。創建一個空的子目錄,將檔案保存到該子目錄當中,並命名為 hello.cs(CS 表示為 C# 檔案)。

基本介紹

  • 外文名:hello.exe
  • 步驟:創建一個空的子目錄
  • 顯示程式:打開命令提示並更改到正在使用
  • 執行程式:列出目錄的內容
顯示程式,執行程式,查看程式,

顯示程式

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

執行程式

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

查看程式

如何查看元數據和 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)。

相關詞條

熱門詞條

聯絡我們