共用方式為


將專案從混合模式轉換為純中繼語言

依照預設,所有 Visual C++ CLR 專案都會連結至 C 執行階段程式庫。 因此,這些專案將歸類為混合模式的應用程式,因為其將機器碼,與以 Common Language Runtime (Managed 程式碼) 為目標的程式碼相結合。 當編譯這些專案時,會將它們編譯成中繼語言 (Intermediate Language,IL),又稱為 Microsoft Intermediate Language (MSIL)。

若要將混合模式的應用程式轉換成純中繼語言

  1. 移除連至 C 執行階段程式庫 (CRT) 的連結:

    1. 在 .cpp 檔中定義應用程式的進入點,將進入點變更為 Main()。 使用 Main() 表示專案沒有連結至 CRT。

    2. 在 [方案總管] 中,在專案上按一下滑鼠右鍵,然後在捷徑功能表上選取 [屬性],以開啟應用程式的屬性頁。

    3. 在 [連結器] 的 [進階] 專案屬性頁中,選取 [進入點] 欄位,然後在此欄位中輸入 Main

    4. 若是主控台應用程式,請在 [連結器] 的 [系統] 專案屬性頁中,選取 [子系統] 欄位,然後將該欄位變更為 [主控台 (/SUBSYSTEM:CONSOLE)]。

      注意事項注意事項

      您不需要為 Windows Form 應用程式設定此屬性,因為 [子系統] 欄位已預設值為 Windows (/SUBSYSTEM:WINDOWS)

    5. 在 stdafx.h 中會將所有 #include 陳述式都變成註解。 例如,在主控台應用程式中:

      // #include <iostream>
      // #include <tchar.h>
      

      -或-

      例如,在 Windows Forms 應用程式:

      // #include <stdlib.h>
      // #include <malloc.h>
      // #include <memory.h>
      // #include <tchar.h>
      
    6. 若是 Windows Form 應用程式 (在 Form1.cpp 中),請將參考 windows.h 的 #include 陳述式標記為註解。 例如:

      // #include <windows.h>
      
  2. 將下列程式碼加入至 stdafx.h:

    #ifndef __FLTUSED__
    #define __FLTUSED__
       extern "C" __declspec(selectany) int _fltused=1;
    #endif
    
  3. 移除所有 Unmanaged 型別:

    1. 如有需要,請將 Unmanaged 型別取代成 System 命名空間中之結構的參考。 下表列出幾個常見的 Managed 型別:

      結構

      說明

      Boolean

      表示布林值。

      Byte

      表示 8 位元不帶正負號的整數 (Unsigned Integer)。

      Char

      表示 Unicode 字元。

      DateTime

      表示時間的瞬間,通常以一天的日期和時間表示。

      Decimal

      代表十進位數值。

      Double

      表示雙精度浮點數。

      Guid

      表示全域唯一識別項 (GUID)。

      Int16

      表示 16 位元帶正負號的整數 (Signed Integer)。

      Int32

      表示 32 位元帶正負號的整數 (Signed Integer)。

      Int64

      表示 64 位元帶正負號的整數 (Signed Integer)。

      IntPtr

      特定平台專用的型別,用來代表指標或控制代碼。

      SByte

      代表 8 位元帶正負號的整數。

      Single

      表示單精確度浮點數。

      TimeSpan

      表示時間間隔。

      UInt16

      表示 16 位元不帶正負號的整數 (Unsigned Integer)。

      UInt32

      表示 32 位元不帶正負號的整數 (Unsigned Integer)。

      UInt64

      表示 64 位元不帶正負號的整數 (Unsigned Integer)。

      UIntPtr

      特定平台專用的型別,用來代表指標或控制代碼。

      Void

      表示不會傳回數值的方法,也就是該方法有 void 傳回型別。