使用多重平台上的資源
更新:2007 年 11 月
Visual Studio 讓您能夠擁有以多重平台 (例如 Pocket PC 和 Smartphone) 為目標的單一裝置專案。因為平台之間使用者介面 (UI) 有所差異,所以專案中每一個平台都需要有自己的資源指令碼 (.rc) 檔案。
多個資源檔
有兩種方法可以設定裝置專案以多種平台做為目標:
在建立專案時使用應用程式精靈
在專案建立之後
如果您在專案應用程式精靈的 [平台] 頁面上選取多重平台,便會針對每種平台產生及設定資源檔。舉例來說,如果您選取 Pocket PC 和 Smartphone 為目標平台,Smartphone 平台的組建就會排除 Pocket PC 的資源檔,Pocket PC 平台的組建也會排除 Smartphone 的資源檔。
然而,如果您在專案建立後加入平台,則會需要手動加入平台和資源檔。
加入新平台
若要加入新平台
按一下 [建置] 功能表上的組態管理員。
在 [使用中的方案平台] 方塊中,按一下 [<新增...>]。
選取您要加入專案中的平台,並選取想要複製其設定的平台,然後按一下 [確定]。
注意事項: 如果您複製的是 [<預設>] 的設定,則該平台的專案屬性會是空的 (尚未進行任何設定),建議您從類似的平台複製設定,然後再依需要變更專案屬性。例如,如果要加入 Smartphone 平台,可以複製 Pocket PC 平台的設定。
按一下 [關閉]。
加入新的資源檔
現在您已經擁有新平台,您必須加入該平台的資源檔。
若要加入新平台的資源檔
在 [專案] 功能表上,按一下 [加入新項目]。
在 [加入新項目] 對話方塊中,按一下 [資源],然後在 [範本] 窗格中按一下 [資源檔 (.rc)]。
在 [名稱] 方塊中,輸入檔案的名稱,然後按一下 [加入]。
專案中會加入相對應於新資源指令碼檔案 (.rc) 的標頭檔 (.h)。
從組建中排除資源檔
當您針對某目標平台建置專案時,並不需要包含其他平台的資源檔,所以您可以從目標平台的組建中排除不需要的檔案。
若要從組建中排除資源檔
以滑鼠右鍵按一下資源指令碼檔案 (.rc),然後按一下 [屬性]。
在 [平台] 方塊中,選取清單中的第一個平台。
在 [一般] 屬性頁上,如果在建置所選平台的專案時,您不想加入這個 .rc 檔案,請選取 [從組建排除] 方塊中的 [是]。
請重複前一個步驟,設定每一個平台的組態,確認只排除了不屬於目前所選平台的資源檔。
針對專案中的每一個 .rc 檔案重複先前的所有步驟 (1-4)。
在 [方案總管] 中,您會發現到從目前所選平台的組建中排除的每一個檔案,它們的圖示上都會有一個紅色標記。
變更新平台組態的專案屬性
您已設定了平台的資源檔,現在,必須確定新平台組態的專案屬性是正確的。如果您複製類似平台的設定,那麼要變更的設定可能並不多,但如果您選取了 [<預設>],就必須手動加入所有設定。舉例來說,假設您在專案中加入了 [Smartphone 2003 (ARMV4)] 新平台,然後複製 [Pocket PC 2003 (ARMV4)] 平台的設定。
若要變更專案屬性
在 [專案] 功能表上,按一下 [屬性]。
展開 [C/C++] 節點,然後按一下 [前置處理器]。
在 [前置處理器定義] 方塊中,將 [POCKETPC2003_UI_MODEL] 改成 [SMARTPHONE2003_UI_MODEL],然後按一下 [確定]。
注意事項: 如果您加入的是不同平台,或者複製的是不同平台的設定,可能需要變更比較多的設定。
將 #ifdef 指示詞加入至標頭檔
專案中的主標頭檔必須檢查您在先前程序中所設定的 UI 模型前置處理器定義,並只包含相對應的資源檔。
若要將 #ifdef 指示詞加入至標頭檔
開啟 ProjectName.h。
在原來平台 UI 模型的 #ifdef 後面,加入下列程式碼:
#ifdef SMARTPHONE2003_UI_MODEL #include "ResourceFileName.h" #endif