如何:在编译时包含资源 (C++)
默认情况下,所有资源都位于一个资源脚本 (.rc) 文件中,但可以出于多种原因将资源放置在主 .rc 文件之外的文件中:
向保存 .rc 文件时不会删除的资源语句添加注释。
包含已开发和测试并且无需进一步修改的资源。 包含在内但没有 .rc 扩展名的任何文件都不可通过资源编辑器进行编辑。
包含不同项目正在使用的资源,或属于源代码版本控制系统的资源。 这些资源必须存在于一个中心位置,在该位置中,修改将影响所有项目。
包括采用自定义格式的资源(如 RCDATA 资源)。 RCDATA 资源具有特殊要求,其中不能将表达式用作
nameID
字段的值。
如果现有 .rc 文件中有一些部分满足以上任何条件,请将这些部分置于一个或多个单独的 .rc 文件中,并使用“资源包括”对话框将它们包含在项目中。
资源包括
可以通过在“资源包括”对话框的“编译时指令”框中列出相关资源,在编译时将其他文件中的资源添加到你的项目。 使用“资源包括”对话框,修改将所有资源存储在项目 .rc 文件中以及将所有符号存储在 Resource.h
中的项目环境正常工作安排。
若要开始,请在资源视图中右键单击 .rc 文件打开“资源包括”对话框,选择“资源包括”,并注意以下属性:
properties | 说明 |
---|---|
符号头文件 | 允许更改头文件的名称,头文件是存储资源文件的符号定义的位置。 有关详细信息,请参阅更改符号头文件的名称。 |
只读符号指令 | 允许包含含有不应修改的符号的头文件。 例如,要与其他项目共享的符号文件。 这也可以包括 MFC .h 文件。 有关详细信息,请参阅包括共享(只读)或计算符号。 |
编译时指令 | 允许包括所创建的资源文件,并可从主资源文件中的资源分别进行编辑,包含编译时指令(比如那些有条件地包括资源的指令),或者包含自定义格式的资源。 还可以使用“编译时指令”框包括标准 MFC 资源文件。 |
注意
这些文本框中的条目将由 TEXTINCLUDE 1
、TEXTINCLUDE 2
和 TEXTINCLUDE 3
分别进行标记后显示在 .rc 文件中。 有关详细信息,请参阅 TN035:在 Visual C++ 中使用多个资源文件和头文件。
使用“资源包括”对话框更改资源文件后,必须关闭并重新打开 .rc 文件,以使更改生效。
编译时在项目中包含资源
将资源置于具有唯一文件名的资源脚本文件中。 不要使用 projectname.rc,因为这是用于主资源脚本文件的文件名称。
右键单击资源视图中的 .rc 文件,然后选择“资源包括”。
在“编译时指令”框中,添加 #include 编译器指令以在开发环境中将新资源文件包含在主资源文件中。
以此方式包含的文件中的资源仅在编译时成为可执行文件的一部分,在处理项目的主 .rc 文件时,无法对其进行编辑或修改。 需要单独打开包含的 .rc 文件,并且无法通过资源编辑器编辑没有 .rc 扩展名的任何包含在内的文件。
为特定资源 (.rc) 文件指定包含目录
在“解决方案资源管理器”中右键单击 .rc 文件,然后选择“属性”。
选择左侧窗格中的“资源”节点,然后在“附加包含目录”属性中指定任何附加的包含目录。
在资源中查找符号
转到菜单,选择“编辑”>“查找符号”。
在“查找内容”框中,从下拉列表中选择以前的搜索字符串或键入要查找的加速键,例如
ID_ACCEL1
。选择任意“查找”选项,然后选择“查找下一个”。
注意
无法搜索字符串、快捷键或二进制资源中的符号。
要求
Win32