如何:使用 /clr 編譯 MFC 和 ATL 程式碼
本主題討論如何編譯現有的 MFC 和 ATL 程式以 Common Language Runtime 為目標。
若要使用 /clr 編譯 MFC 可執行檔或一般 MFC DLL
在 [方案總管] 中,以滑鼠右鍵按一下專案,然後按一下 [屬性]。
在 [項目屬性] 對話框中,展開 [組態屬性] 旁的節點,然後選取 [一般]。 在右窗格中的 [項目預設值] 底下,將 Common Language Runtime 支援設定為 Common Language Runtime Support (/clr) 。
在相同的窗格中,確定 [使用 MFC ] 設定為 [在共用 DLL 中使用 MFC]。
在 [組態屬性] 下,展開 C/C++旁的節點,然後選取 [一般]。 請確定 [ 偵錯資訊格式 ] 設定為 Program Database /Zi (而非 /ZI)。
選取 [ 程序代碼產生] 節點。 將 [啟用最小重建] 設定為 [否] (/Gm-) 。 同時將 [基本運行時間檢查] 設定為 [預設值]。
在 [組態屬性] 底下,選取 [C/C++],然後選取 [程序代碼產生]。 請確定 執行時間連結庫 設定為 多線程偵錯 DLL (/MDd) 或 多線程 DLL (/MD) 。
在 Stdafx.h 中,新增下列這一行。
#using <System.Windows.Forms.dll>
使用 /clr 編譯 MFC 延伸模組 DLL
請遵循<使用 /clr 編譯 MFC 可執行檔或一般 MFC DLL>中的步驟。
在 [組態屬性] 下,展開 C/C++旁的節點,然後選取 [先行編譯標頭]。 將 [建立/使用先行編譯標頭] 設定為 [不使用先行編譯標頭]。
或者,在 方案總管 中,以滑鼠右鍵按兩下 [Stdafx.cpp],然後按兩下 [屬性]。 在 [組態屬性] 下,展開 C/C++旁的節點,然後選取 [一般]。 將 [使用 Common Language Runtime 支援的編譯] 設定為 [沒有 Common Language Runtime 支援]。
針對包含 DllMain 的檔案及其所呼叫的任何專案,請在 方案總管 中,以滑鼠右鍵按兩下檔案,然後按兩下 [屬性]。 在 [組態屬性] 下,展開 C/C++旁的節點,然後選取 [一般]。 在右窗格中的 [項目預設值] 底下,將 [使用 Common Language Runtime 支援的編譯] 設定為 [沒有 Common Language Runtime 支援]。
使用 /clr 編譯 ATL 可執行檔
在 [方案總管] 中,以滑鼠右鍵按一下專案,然後按一下 [屬性]。
在 [項目屬性] 對話框中,展開 [組態屬性] 旁的節點,然後選取 [一般]。 在右窗格中的 [項目預設值] 底下,將 Common Language Runtime 支援設定為 Common Language Runtime Support (/clr) 。
在 [組態屬性] 下,展開 C/C++旁的節點,然後選取 [一般]。 請確定 [ 偵錯資訊格式 ] 設定為 Program Database /Zi (而非 /ZI)。
選取 [ 程序代碼產生] 節點。 將 [啟用最小重建] 設定為 [否] (/Gm-) 。 同時將 [基本運行時間檢查] 設定為 [預設值]。
在 [組態屬性] 底下,選取 [C/C++],然後選取 [程序代碼產生]。 請確定 執行時間連結庫 設定為 多線程偵錯 DLL (/MDd) 或 多線程 DLL (/MD) 。
針對每個 MIDL 產生的檔案 (C 檔案),以滑鼠右鍵按兩下 方案總管 中的檔案,然後按兩下 [屬性]。 在 [組態屬性] 下,展開 C/C++旁的節點,然後選取 [一般]。 將 [使用 Common Language Runtime 支援的編譯] 設定為 [沒有 Common Language Runtime 支援]。
若要使用 /clr 編譯 ATL DLL
請遵循<使用 /clr 編譯 ATL 可執行檔>一節中的步驟。
在 [組態屬性] 下,展開 C/C++旁的節點,然後選取 [先行編譯標頭]。 將 [建立/使用先行編譯標頭] 設定為 [不使用先行編譯標頭]。
或者,在 方案總管 中,以滑鼠右鍵按兩下 [Stdafx.cpp],然後按兩下 [屬性]。 在 [組態屬性] 下,展開 C/C++旁的節點,然後選取 [一般]。 將 [使用 Common Language Runtime 支援的編譯] 設定為 [沒有 Common Language Runtime 支援]。
針對包含 DllMain 的檔案及其所呼叫的任何專案,請在 方案總管 中,以滑鼠右鍵按兩下檔案,然後按兩下 [屬性]。 在 [組態屬性] 下,展開 C/C++旁的節點,然後選取 [一般]。 在右窗格中的 [項目預設值] 底下,將 [使用 Common Language Runtime 支援的編譯] 設定為 [沒有 Common Language Runtime 支援]。