VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
楼主: icecept

[经验技巧] 资源文件精解示例

[复制链接]
发表于 2008-1-17 12:09:06 | 显示全部楼层
好东西。慢慢学。
回复 支持 反对

使用道具 举报

发表于 2008-1-17 16:38:01 | 显示全部楼层
不错,谢谢
回复 支持 反对

使用道具 举报

发表于 2008-1-22 17:06:05 | 显示全部楼层
学习了 多谢了
回复 支持 反对

使用道具 举报

发表于 2008-1-23 16:00:30 | 显示全部楼层
下载学习,顶
回复 支持 反对

使用道具 举报

发表于 2008-1-26 10:30:49 | 显示全部楼层
thank you
回复 支持 反对

使用道具 举报

发表于 2008-1-26 10:37:53 | 显示全部楼层
做res的

MakeRES.rar

160 Bytes, 下载次数: 558

回复 支持 反对

使用道具 举报

发表于 2008-3-10 16:02:21 | 显示全部楼层
顶一下
回复 支持 反对

使用道具 举报

发表于 2008-3-21 13:30:54 | 显示全部楼层
没有看明白这个BAT文件的意思。
"C:\Program Files\Microsoft Visual Studio\VB98\Wizards\RC.EXE" /r /fo res.res res.rc
r /fo 更不懂了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-21 14:45:43 | 显示全部楼层
---- 一. 资源在软件设计中的作用

---- 在Windows中,一个资源代表一个Windows对象的数据块,每个可执行文件都包含一个资源表,其中列出了该文件中的资源。应用程序中使用的资源通常可分为两大类:二进制资源和字符串资源;字符串资源指在应用程序的用户界面中出现的所有文本,其中包括菜单、对话框以及提示、警告和错误提示信息;二进制资源包括:图标、位图、光标文件、声音、图象及视频等以二进制格式存放的资源。

---- 应用程序中引入资源文件的最初动机是为使应用程序更容易国际化;把应用程序分成两个概念模块:代码模块和数据模块,如下所示:

数据模块+代码模块=产品
用户接口部件+应用程序部件=本地化产品

---- 数据模块包含所有用户界面的字符串资源而不包含代码,相反,代码模块只包含可运行于所有区域的应用程序代码。因而在开发不同语言版本的应用程序时,本地化小组只须把精力花在资源文件上,这样做有以下优点:

---- 高效:由于代码是相同的,因而在开发新的国际化应用程序只须创建新的资源文件,这样可以顺利地开发不同语言版本的应用程序;安全:无论在内部或利用外部公司本地化程序,都可以不用修改代码,这样做可以减少化在国际版测试上的精力;更好的本地化:由于所有的字符串资源都在一个文件中,因此可以提高本地化工作的效率并防止遗漏。

---- 要将应用程序使用的资源从应用程序中分离出来组成数据模块,可以用资源编译器将这些对象合并到一个资源文件里;利用资源文件组织资源,允许你很容易将大量的图形位图和图标文件直接包含在你的项目中,在对他们进行访问时单独加载,能改进加载时间,避免资源在调用窗口时全部加载而加快程序代码执行效率;除此外,还可以增加空间,这是因为字符串、位图、图标和数据可以不必在调用窗口或模块时就全部加载,而是按照需要从资源文件中加载。

---- 二. 资源在资源定义文件的组织与定义

---- 字符串资源和二进制资源的定义语法分别如下:

---- 1. 字符串资源

---- 在资源定义文件里,字符串资源是包含在一个字符串表中的,定义语法格式:

STRINGTABLE   [load_option] [mem_option]
begin
String ID  string
.
.
.
end

---- 参数说明

---- -----load_option 指出资源被装栽的方式:preload(程序执行时立即装载);load on call(资源在被调用时装载,默认方式)。

---- -----mem_option 指定资源被载入内存后是否可以移动和卸载。有三个参数可选:Fixed (指定资源存放在一个固定的内存区域中),Moveable(资源在系统有必要压缩内存时可以被移动),Discardable(资源在不再使用时被卸载);

---- -----StringID 指定一个整数作为识别资源的资源号;

---- -----String 字符串资源,它必须包含再两个双引号之内,而且长度不超过255个字节,一个字符串资源在资源定义文件里只能放在一行之中。

---- 资源编译器编译资源时,是按标签号来分类的,每16个字符串为一段,标签号高12位相同的将被划分为同一段,在装载资源文件时是以段来栽入和卸载的。

---- 资源定义例子:

# define  IDS_HELLO         1
#define   IDS_GOODBYE      2
STRINGTABLE
Begin
IDS_HELLO , “Hello”
IDS_GOODBYE, “goodbye”
End

---- 2.二进制资源

---- 二进制资源是不包含在资源定义文件里的。资源定义文件只包含了一个指向包含该资源的文件的指针,这些指针在资源定义文件里被称为单行声明。

---- 定义语法: nameID keyword [load_option] [mem_option] filename

---- 参数说明:

---- ------nameID 指定一个名字或整数来标识该资源。这个标识号在同类的资源里是唯一的,而在图标类资源中,标识号0是保留号,0号图标资源是应用程序图标。因而,图标类资源的标识号只能从1开始;

---- -----keyword 二进制资源的类别,可以设为以下参数之一:Bitmap (位图文件)、cursor(光标文件)、iocn(图标文件)、sound(声音文件)、video(视频文件);

---- -----load_option 该参数功能与字符串资源对应定义参数相同

---- -----mem_option 该参数功能与字符串资源对应定义参数相同

---- -----fileName 包含资源的文件名,文件名格式采用 MS-DOS的文件名格式,而且必须是全路径文件名,可以用双引号括起来也可以不括起来。

---- 例: 12 Bitmap Picture “c:\disk.map”

---- 3. 资源文件的编译

---- 用资源文件编译器把资源定义文件编译成标准的Windows资源文件后,该资源文件就可以加载到应用项目中被应用程序调用,编译后的文件是标准的资源文件,可由 Microsoft c++和其它大部分的Windows 开发工具使用。编译资源定义文件可以用资源编译器 RC.EXE。

---- 格式:RC/R [option] definition_file source_file

---- ---/R 该参数指定资源文件仅被编译而不连接到可执行文件

---- ---option 此参数为/?则列出资源编译器RC.EXE 的命令行参数;为/fo Name 则指定编译后扩展名为 .RES 的资源文件名;

---- ---definition file 指定被编译的资源定义文件

---- 例: RC /R /fo test.res test.rc

评分

参与人数 1威望 +5 收起 理由
DreamonII + 5 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2008-3-28 11:23:09 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2019-7-21 08:09

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表