资源文件 (C++)
注意
由于 .NET 编程语言的项目不使用资源脚本文件,因此必须从解决方案资源管理器打开资源。 使用图像编辑器和二进制编辑器处理托管项目中的资源文件。
你要编辑的任何托管资源都必须是链接的资源。 Visual Studio 资源编辑器不支持编辑嵌入的资源。
术语“资源文件”可以指多种文件类型中的任何一种,例如:
程序的资源脚本 (
.rc
) 文件。资源模板 (
.rct
) 文件。作为独立文件存在的单个资源。 此类型包括从
.rc
文件引用的位图、图标或光标文件。开发环境生成的头文件。 此类型包括从
.rc
文件引用的Resource.h
。
其他文件类型(例如 .exe
、.dll
和 .res
文件)也可能包含可以访问的资源,但前两种通常不被视为资源文件。
可以使用项目中的资源文件和资源。 还可以使用不属于当前项目的资源和资源文件,或者在 Visual Studio 的开发环境之外创建的资源和资源文件。 例如,可以:
使用嵌套的条件包含资源文件。
更新现有资源或将它们转换为 Visual C++。
从当前资源文件中导入图形资源或向其导出图形资源。
包含不能由开发环境修改的共享或只读标识符(符号)。
在可执行文件(
.exe
或.dll
)中包含不需要编辑(或不应编辑)的资源,例如多个项目之间的共享资源。包含开发环境不支持的资源类型。
有关资源的详细信息,请参阅如何创建资源、管理资源和在编译时包含资源。
可编辑的资源
可以打开以下类型的文件来编辑它们包含的资源:
文件名 | 说明 |
---|---|
.rc |
资源脚本文件 |
.rct |
资源模板文件 |
.res |
资源文件 |
.resx |
托管资源文件 |
.exe |
可执行文件 |
.dll |
动态链接库文件 |
位图、图标、工具栏和光标文件 |
Visual Studio 环境在编辑资源时使用并影响以下文件:
文件名 | 说明 |
---|---|
Resource.h |
开发环境生成的包含符号定义的头文件。 将此文件包含在源代码管理中。 |
Filename.aps |
用于快速加载的当前资源脚本文件的二进制版本。 资源编辑器不直接读取 .rc 或 resource.h 文件。 资源编译器将它们编译为资源编辑器使用的 .aps 文件。 该文件是一个编译步骤,只存储符号数据。与正常的编译过程一样,非符号信息(例如注释)在编译过程中会被丢弃。 只要 .aps 文件与 .rc 文件不同步,就会重新生成 .rc 文件。 例如,当保存时,资源编辑器会覆盖 .rc 文件和 resource.h 文件。 对资源本身的任何更改都保留在 .rc 文件中,但一旦 .rc 文件被覆盖,注释总是会丢失。 有关如何保留注释的信息,请参阅在编译时包含资源。通常,不应将 .aps 文件包含在源代码管理中。 |
.rc |
包含当前项目中的资源脚本的资源脚本文件。 每次保存时,此文件都会被 .aps 文件覆盖。将此文件包含在源代码管理中。 |
清单资源
在 C++ 桌面项目中,清单资源是描述应用程序使用的依赖项的 XML 文件。 例如,在 Visual Studio 中,此 MFC 向导生成的清单文件定义了应用程序应该使用哪个版本的 Windows 公共控件 DLL:
<description>Your app description here</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
对于 Windows XP 或 Windows Vista 应用程序,清单资源应指定供应用程序使用的 Windows 通用控件的最新版本。 上面的示例使用版本 6.0.0.0
,该版本支持 Syslink
控件。
注意
每个模块只能有一个清单资源。
若要查看清单资源中包含的版本和类型信息,请在 XML 查看器或 Visual Studio 文本编辑器中打开文件。 如果从 资源视图打开清单资源,则资源将以二进制格式打开。
打开清单资源
在 Visual Studio 中打开项目并导航到解决方案资源管理器。
展开“资源文件”文件夹,然后:
要在文本编辑器中打开,请双击
.manifest
文件。要在其他编辑器中打开,请右键单击
.manifest
文件并选择“打开方式”。 指定要使用的编辑器并选择“打开”。
要求
Win32