共用方式為


如何:使用 /clr 編譯 MFC 和 ATL 程式碼

本主題討論如何編譯現有的 MFC 和 ATL 程式以 Common Language Runtime 為目標。

若要使用 /clr 編譯 MFC 可執行檔或一般 MFC DLL

  1. 在 [方案總管] 中,以滑鼠右鍵按一下專案,然後按一下 [屬性]

  2. 在 [項目屬性] 對話框中,展開 [組態屬性] 旁的節點,然後選取 [一般]。 在右窗格中的 [項目預設值] 底下,將 Common Language Runtime 支援設定Common Language Runtime Support (/clr)

    在相同的窗格中,確定 [使用 MFC ] 設定為 [在共用 DLL 中使用 MFC]。

  3. 在 [組態屬性] 下,展開 C/C++旁節點,然後選取 [一般]。 請確定 [ 偵錯資訊格式 ] 設定為 Program Database /Zi (而非 /ZI)。

  4. 選取 [ 程序代碼產生] 節點。 將 [啟用最小重建] 設定[否] (/Gm-) 。 同時將 [基本運行時間檢查] 設定[預設值]。

  5. 在 [組態屬性] 底下,選取 [C/C++],然後選取 [程序代碼產生]。 請確定 執行時間連結庫 設定為 多線程偵錯 DLL (/MDd)多線程 DLL (/MD)

  6. 在 Stdafx.h 中,新增下列這一行。

    #using <System.Windows.Forms.dll>
    

使用 /clr 編譯 MFC 延伸模組 DLL

  1. 請遵循<使用 /clr 編譯 MFC 可執行檔或一般 MFC DLL>中的步驟。

  2. 在 [組態屬性] 下,展開 C/C++的節點,然後選取 [先行編譯標頭]。 將 [建立/使用先行編譯標頭] 設定[不使用先行編譯標頭]。

    或者,在 方案總管,以滑鼠右鍵按兩下 [Stdafx.cpp],然後按兩下 [屬性]。 在 [組態屬性] 下,展開 C/C++旁節點,然後選取 [一般]。 將 [使用 Common Language Runtime 支援的編譯] 設定[沒有 Common Language Runtime 支援]。

  3. 針對包含 DllMain 的檔案及其所呼叫的任何專案,請在 方案總管,以滑鼠右鍵按兩下檔案,然後按兩下 [屬性]。 在 [組態屬性] 下,展開 C/C++旁節點,然後選取 [一般]。 在右窗格中的 [項目預設值] 底下,將 [使用 Common Language Runtime 支援的編譯] 設定[沒有 Common Language Runtime 支援]。

使用 /clr 編譯 ATL 可執行檔

  1. 在 [方案總管] 中,以滑鼠右鍵按一下專案,然後按一下 [屬性]

  2. 在 [項目屬性] 對話框中,展開 [組態屬性] 旁的節點,然後選取 [一般]。 在右窗格中的 [項目預設值] 底下,將 Common Language Runtime 支援設定Common Language Runtime Support (/clr)

  3. 在 [組態屬性] 下,展開 C/C++旁節點,然後選取 [一般]。 請確定 [ 偵錯資訊格式 ] 設定為 Program Database /Zi (而非 /ZI)。

  4. 選取 [ 程序代碼產生] 節點。 將 [啟用最小重建] 設定[否] (/Gm-) 。 同時將 [基本運行時間檢查] 設定[預設值]。

  5. 在 [組態屬性] 底下,選取 [C/C++],然後選取 [程序代碼產生]。 請確定 執行時間連結庫 設定為 多線程偵錯 DLL (/MDd)多線程 DLL (/MD)

  6. 針對每個 MIDL 產生的檔案 (C 檔案),以滑鼠右鍵按兩下 方案總管 中的檔案,然後按兩下 [屬性]。 在 [組態屬性] 下,展開 C/C++旁節點,然後選取 [一般]。 將 [使用 Common Language Runtime 支援的編譯] 設定[沒有 Common Language Runtime 支援]。

若要使用 /clr 編譯 ATL DLL

  1. 請遵循<使用 /clr 編譯 ATL 可執行檔>一節中的步驟。

  2. 在 [組態屬性] 下,展開 C/C++的節點,然後選取 [先行編譯標頭]。 將 [建立/使用先行編譯標頭] 設定[不使用先行編譯標頭]。

    或者,在 方案總管,以滑鼠右鍵按兩下 [Stdafx.cpp],然後按兩下 [屬性]。 在 [組態屬性] 下,展開 C/C++旁節點,然後選取 [一般]。 將 [使用 Common Language Runtime 支援的編譯] 設定[沒有 Common Language Runtime 支援]。

  3. 針對包含 DllMain 的檔案及其所呼叫的任何專案,請在 方案總管,以滑鼠右鍵按兩下檔案,然後按兩下 [屬性]。 在 [組態屬性] 下,展開 C/C++旁節點,然後選取 [一般]。 在右窗格中的 [項目預設值] 底下,將 [使用 Common Language Runtime 支援的編譯] 設定[沒有 Common Language Runtime 支援]。

另請參閱

混合 (原生和 Managed) 組件