跳转到内容

Windows 编程/资源脚本

来自维基教科书,开放的书籍,开放的世界

Windows 平台 SDK 包含一个名为 rc.exe 的特殊实用程序,即 资源脚本编译器。资源脚本是 Windows 编程中一个强大的部分,任何优秀的程序员都应该知道如何有效地利用它。

有关特定资源的更多信息,请参阅 资源脚本参考

什么是资源脚本

[编辑 | 编辑源代码]

资源编译器编译一种称为 资源脚本 的特殊类型的文件。资源脚本包含 GUI 数据,并且在编译后,可以链接到程序中。然后程序可以访问资源脚本中包含的数据。需要注意的是,Windows 操作系统会出于各种目的访问程序的资源。例如,右键单击程序,然后单击“属性”。如果有,请单击“版本”选项卡。此选项卡将包含一些描述程序的不同文本字符串。这些文本字符串都来自资源脚本。

此外,每个人都熟悉通常每个程序都有一个独特的图标的事实。如果你希望你的程序可执行文件使用一个特殊的图标,你必须将其包含在一个资源脚本中。

通过资源脚本,可以在程序中存储许多不同类型的资源。资源脚本不是在程序中存储此信息的唯一方法,但它们比编写硬 C 或 VB 代码来存储和访问它们要容易得多。

资源类型

[编辑 | 编辑源代码]

以下是常见资源的列表:

  • 下拉菜单
  • 弹出菜单
  • 文本字符串
  • 键盘加速键(按键组合,例如 [Ctrl]+[C] 用于复制文本)
  • 图标
  • 位图图像
  • 对话框
  • 版本信息
  • 鼠标光标

制作资源脚本

[编辑 | 编辑源代码]

编写资源脚本的语法类似于 C。例如,资源脚本编译器使用标准 C 预处理器。这很重要,因为你必须包含头文件 <afxres.h> 来制作资源脚本。此外,大多数资源脚本都包含宏值,因此程序员经常将相关的宏定义存储在头文件“resource.h”中。这样,相同的宏就可以包含在主程序文件中并使用。

我们将在后面的章节中详细讨论资源;还有一个附录列出了所有常见的资源类型,包括有关如何使用它们的说明。这个附录位于 Windows 编程/资源脚本参考

使用资源

[编辑 | 编辑源代码]

一旦资源存储在你的可执行文件中,就有各种方法可以访问它。这些方法根据你试图访问的资源类型而有所不同。例如,如果你想访问一个字符串资源,你需要使用 LoadString 函数;相应地,需要 LoadIcon 函数来访问图标。

要访问资源,你必须拥有包含该资源的可执行文件的实例句柄。这意味着,如果你获得另一个可执行文件(或 DLL)文件的实例句柄,就可以远程访问资源!有时,程序员会创建仅包含资源的 DLL 文件,供其他程序使用。

MAKEINTRESOURCE

[编辑 | 编辑源代码]

MAKEINTRESOURCE 关键字,我们有时会在处理资源时看到,是一个重要的关键字,如果使用不正确,程序会崩溃(甚至无法编译),所以花点时间理解它非常值得。

所有资源都存储在一个名称中,该名称可以是字符串或数字标识符。如果是数字,则该数字必须不大于无符号 16 位整数(65535,最大)。所有资源都按名称调用,即系统期望一个包含资源名称的 Unicode 字符串。但是,如果我们使用数字标识符,我们需要通知系统我们这样做,这样它就不会混淆并尝试将你的整数视为字符串。为此,我们将 MAKEINTRESOURCE 宏传递给 make。宏接受一个参数 - 数字标识符 - 它返回一个适合在系统中使用的字符串指针。我们将在后面演示这一点。

下一章

[编辑 | 编辑源代码]
华夏公益教科书