HOW TO:使用 /clr 編譯 MFC 和 ATL 程式碼
更新:2007 年 11 月
本主題將討論如何編譯現有的 MFC 和 ATL 程式,使其以 Common Language Runtime 為目標。
若要使用 /clr 編譯 MFC 可執行檔或標準 DLL
在 [方案總管] 中,以滑鼠右鍵按一下專案並選取 [屬性],開啟 [專案屬性] 對話方塊。
展開 [組態屬性] 旁邊的節點,然後選取 [一般]。在右窗格中的 [專案預設值] 底下,將 [Common Language Runtime 支援] 設定為 [Common Language Runtime 支援 (/clr)]。
在同一個窗格中,確定 [MFC 的使用] 已設定為 [使用 MFC 的共用 DLL]。
請在 [組態屬性] 底下,展開 [C/C++] 旁的節點並選取 [一般]。確定 [偵錯資訊格式] 已設定為 [Program Database /Zi] (而不是 /ZI)。
在 [組態屬性] 底下,選取 [C/C++],再選取 [程式碼產生]。確定 [執行階段程式庫] 已設定為其中一個 [多執行緒偵錯 DLL (/MDd)] 或 [多執行緒 DLL (/MD)]。
若要使用 /clr 編譯 MFC 擴充 DLL
請依照上述<若要使用 /clr 編譯 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 支援 (/clr)]。
請在 [組態屬性] 底下,展開 [C/C++] 旁的節點並選取 [一般]。確定 [偵錯資訊格式] 已設定為 [Program Database /Zi] (而不是 /ZI)。
在 [組態屬性] 底下,選取 [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]。