Win32个资源结构.doc

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Win32 二进制资源格式 (壹) 2007年07月21日 星期六 09:22 文章出处:/heyanarchive/2007/02/17/1511433.aspx 本想在月底前翻译完的,谁知翻译的这么快,现在我把它全部贴出来,方便大家共同学习研究Windows资源格式。翻译的不好,也没有经过审校,不当之处请大家指正。 Win32 二进制资源格式 作者:Floyd Rogers 翻译:和阳阳 前言 本文档由微软开发者技术支持(Microsoft Developer Support)编辑并发布。它描述了Win32资源的二进制格式。我们认为这可能对程序开发工作有所帮助,因此提供了本信息。不幸的是在Windows NT 最终版发布前本文档提供的信息可能会有所改变,微软并不会因为发布了本文档就负责保持本资源格式。任何关于此信息的后续问题将会在CompuServe MSWIN32论坛的第四区发布。 ——Steve Firebaugh 微软开发者技术支持 1.概述 1.1 与Windows 16(Win 3.0/3.1) 对照比较 1.2 UNICODE字符串 1.3 双字(DWORD)对齐 2.总体信息 2.1 新语句 2.1.1 新按钮(Button)语句 AUTO3STATE AUTOCHECKBOX AUTORADIOBUTTON PUSHBOX STATE3(3STATE) USERBUTTON 2.1.2 EXSTYLE语句 2.1.3 CHARACTERISTICS语句 2.1.4 VERSION语句 2.1.5 LANGUAGE语句 2.1.6 MESSAGETABLE语句 2.1.7 对UNICODE字符串的附加语法 3.资源头格式 3.1 DataSize 3.2 HeaderSize 3.3 Type 3.4 Names 3.5 附加资源头信息 3.5.1 DataVersion 3.5.2 MemoryFlags 3.5.3 LanguageId 3.5.4 Version与Characteristics 3.6 区分16位与32位资源文件 3.7 文件对齐 4.资源数据格式 4.1 版本资源 4.2 图标资源 4.3 菜单资源 4.4 对话框资源 4.5 光标资源 4.6 位图资源 4.7 字体和字体目录资源 4.8 字符串表资源 4.9 加速键表资源 4.10 用户定义的资源与RCDATA 4.11 名字表与错误表资源 4.12 版本资源 4.13 消息表(Messagetable)资源 5.修改日志 1.概述 本文档详细描述了Windows 32 API(Windows NT 3.1 和 Win32s)的二进制资源文件(.res)格式的结构。它与现有的Windows 16(Win 3.0/3.1)结构基本相似,但支持了更多更好的新特性,比如UNICODE字符串、版本头和双字对齐等等。因此若想支持这些新特性,资源编译器所生成的文件格式必须相对于Windows 16 有所改变。 1.1 Windows 3.0/3.1 与 Windows 32 对比 Windows 16资源文件包含了一个以上的二进制资源。每个资源都前置一个可变长度的数据结构,它包含:类型、名称、标志和大小。类型与名称域包含一个标识此类型的字符串或一个标识此资源ID的单字值。标志域告诉系统应当如何将此资源载入内存,大小域指出了资源的大小,以字节为单位。因此大小域实际上就是一个指向文件中下一个资源的指针。 Windows 32(NT和Win32s)资源文件继承了此节构,并扩充了头信息,增加了几个域。而且给一些预定义资源(如菜单和对话框)增加了一些域,并使这些结构能够单字或双字对齐,以及增加了UNICODE(16位字符)支持。 还有一个不同点,不过它没什么重要性。它不直接影响资源文件的结构,不过它影响了资源文件是如何合并在可执行文件中的方法。Windows NT使用COFF格式对象。因此,实际上Windows 32可执行文件格式与Windows 16大相径庭,SDK提供了一个转换工具:CVTRES,用来将一个资源文件转换为COFF对象。连接器会直接将这个对象合并到最终的可执行文件中去。和Windows 16一样,不能仅通过多次运行资源编译器来更新资源:必须重新进行连接。 不过Windows 32 API 提供了一些API,使程序可以枚举可执行文件内的所有资源,并可以单独更新其中的资源。 1.2 UNICODE字符串 资源文件中的所有字符串现在都存储为UNICODE格式。在这种格式下,所有的字符都由一个16位(单字)值表示。最开始的128个字符与Windows ANSI字符集完全相同(但这

文档评论(0)

wuailuo + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档