使用多个平台上的资源

更新:2007 年 11 月

使用 Visual Studio,您可以让一个设备项目面向多个平台,如 Pocket PC 和 Smartphone。由于平台之间在用户界面 (UI) 上的差异,因此每个平台都需要在项目中具有自己的资源脚本文件 (.rc)。

多个资源文件

有两种将设备项目设置为面向多个平台的方式:

  • 在创建项目时使用应用程序向导。

  • 创建项目之后。

如果在项目应用程序向导的“平台”页上选择了多个平台,将为每一个平台生成并配置一个资源文件。例如,如果选择 Pocket PC 和 Smartphone 作为目标平台,那么在面向 Smartphone 平台进行生成时将排除 Pocket PC 资源文件,在面向 Pocket PC 平台进行生成时将排除 Smartphone 资源文件。

但是,如果在创建项目后添加平台,则必须手动添加平台和资源文件。

添加新平台

添加新平台

  1. 在“生成”菜单上单击“配置管理器”

  2. 在“活动解决方案平台”框中,单击“<新建...>”。

  3. 选择要添加到项目的平台,再选择要从中复制设置的平台,然后单击“确定”。

    说明:

    如果从“<默认>”复制设置,则该平台的项目属性将为空。建议从类似的平台复制设置,然后根据需要更改项目属性。例如,如果要添加 Smartphone 作为平台,则应从 Pocket PC 平台复制设置。

  4. 单击“关闭”。

添加新的资源文件

既然您拥有了一个新的平台,那么您必须为该平台添加资源文件。

为新平台添加资源文件

  1. 在“项目”菜单上单击“添加新项”。

  2. 在“添加新项”对话框中,单击“资源”,然后在“模板”窗格中,单击“资源文件 (.rc)”。

  3. 在“名称”框中,键入文件的名称,然后单击“添加”。

此时,向您的项目添加一个新的头文件 (.h),该文件与新的资源脚本文件 (.rc) 对应。

从生成中排除资源文件

针对目标平台生成项目时,您不会希望包含来自其他平台的资源文件。可以基于目标平台从生成中排除文件。

从生成中排除资源文件

  1. 右击资源脚本文件 (.rc),然后单击“属性”。

  2. 在“平台”框中,选择列表中的第一个平台。

  3. 如果希望在面向选定平台生成项目时不包括该 .rc 文件,请在“常规”属性页上的“从生成中排除”框中选择“是”。

  4. 对每个平台配置重复上一步骤,确保仅排除不属于当前选定平台的资源文件。

  5. 对项目中的每个 .rc 文件,重复执行前面的所有步骤 (1-4)。

在“解决方案资源管理器”中,您会注意到要从面向当前选定平台的生成中排除的每个文件的图标上都有一个红色标记。

更改新平台配置的项目属性

既然已经为您的平台设置了资源文件,那么您必须确保项目属性对于新的平台配置而言是正确的。如果设置是从类似平台中复制的,您可能没有太多要更改的设置,但如果您选择的是“<默认>”,则必须手动添加所有设置。对于本示例,您可以假设向项目中添加了一个新的“Smartphone 2003 (ARMV4)”平台,而设置是从“Pocket PC 2003 (ARMV4)”平台复制的。

更改项目属性

  1. 在“项目”菜单上单击“属性”。

  2. 展开“C/C++”节点,然后单击“预处理器”。

  3. 在“预处理器定义”框中,将 POCKETPC2003_UI_MODEL 更改为 SMARTPHONE2003_UI_MODEL,然后单击“确定”。

    说明:

    如果您添加了一个不同的平台,或者从一个不同的平台复制了设置,则可能需要更改更多设置。

向头文件中添加 #ifdef 指令

项目的主头文件必须检查您在前面的过程中设置的 UI 模型预处理器定义,并且仅包括相应的资源文件。

向头文件中添加 #ifdef 指令

  1. 打开项目名称.h。

  2. 在原始平台的 UI 模型的 #ifdef 后面,添加以下代码:

    #ifdef SMARTPHONE2003_UI_MODEL
       #include "ResourceFileName.h"
    #endif
    

请参见

其他资源

设备项目的资源编辑器