.rc文件和.rc2文件
c和rc2都是资源文件,包含了应用程序中用到的所有的资源。
两者不同在于:rc文件中的资源可以直接在VC集成环境中以可视化的方法进行编辑和修改;
而rc2中的资源不能在VC的集成环境下直接进行编辑和修改, 而是由根据需要手工地进行编辑。
(
// xxx.RC2 - Microsoft Visual C++ 不会直接编辑的资源
)
在下面的地址找到关于RC2文件的描述:
http://msdn.microsoft.com/zh-cn/library/y3sk7e6b(VS.80).aspx
RC2文件:包含项目使用的附加资源的脚本文件。可以在项目的 .rc 文件的顶部包括 .rc2 文件。
.rc2 文件用于存放由多个不同项目使用的资源。不必为不同的项目多次创建相同的资源,而是可以将它们放在一个 .rc2 文件中,然后将该 .rc2 文件包括在主 .rc 文件中。
.rc2 扩展资源文件,当调用到其它project的资源的时候就会产生,用到资源的时候,比如说一个图片等等……
---------------------
MFC中的.rc文件.
统一资源管理:
在win32编程中,为方便项目中的资源统一管理,提供了一个格式统一的资源文件,对各种资源进行管理。它的扩展名是.rc,在程序编译时它会被资源编译器编译生成一个.res的二进制文件。
rc文件的语法:
1.注释:注释方式和 C 语言相通,单行注释用 // 符号,多行注释用 /* ... */ 符号。
2.预处理命令:预处理指令包括一些头文件的引用(使用 #include ,也同 C 语言)。
3.编译指令:预定义(#define,常量和宏,不支持带参数的宏) 和 条件编译(#if, #ifdef, #undef, #ifndef, #else, #elif, #endif 等)。
4.资源定义声明:资源定义的声明中包括“资源”(Resources),"控件"(Controls) 和 “声明”(Statements) 3 类。
资源定义声明:
1.资源(Resources):“资源”具有资源 ID,在程序中可以使用 FindResource ,LoadResource,LoadMenu 等资源相关 API 来操作。常见的定义如下:
(1)从文件导入的资源类型:(BITMAP,ICON,HTML,FONT,CURSOR 等)
- //格式:
- nameID BITMAP filename
- //例子:
- IDI_ICON_MAIN ICON "res\icon.ico" //ICON RESOURCE
(2) 对话框资源类型:(DIALOG,DIALOGEX 等)(对话框可以包括若干子控件,如菜单,按钮等,定义语法如下)
//模板
nameID DIALOGEX x, y, width, height [ , helpID]] [[ optional-statements]] {control-statements }
//例子
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 290, 59 //DIALOGEX RESOURCE
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog" // CAPTION STATEMENT
FONT 8, "MS Shell Dlg", 400, 0, 0x1 // FONT STATEMENT
BEGIN
LTEXT "Windows Resource Demo",3001,26,14,119,8,SS_NOPREFIX // CONTROL
LTEXT "Copyright (C) 2008",3002,26,30,119,8 // CONTROL
DEFPUSHBUTTON "OK",IDOK,234,14,32,14,WS_GROUP // CONTROL
DEFPUSHBUTTON "Quit",IDCANCEL,234,31,32,14,WS_GROUP // CONTROL
END
MFC resource.h 和.rc文件的关系。
xx.rc包含了resource.h
我们可以打开xx.rc文件,内容如下:
// Microsoft Visual C++ 生成的资源脚本。 // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // 从 TEXTINCLUDE 2 资源生成。 // #include "afxres.h" #include "verrsrc.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE BEGIN "resource.h " END 2 TEXTINCLUDE BEGIN "#include ""afxres.h"" " "#include ""verrsrc.h"" " "