Share via


如何:使用 /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) 組件