添加,删除和替换资源

【勇芳软件工作室】汉化HomePreviousNext

应用程序必须经常在可执行文件中添加,删除或替换资源。可以使用两种方法来完成这些任务。第一个是编辑资源定义文件,重新编译资源,并将重新编译的资源添加到应用程序的可执行文件中。第二种方法是将资源数据直接复制到应用程序的可执行文件中。

例如,为了本地化在挪威使用的英文应用程序,可能需要用挪威语替换英文对话框。开发人员通过使用对话框编辑器或在资源定义文件中编写模板来创建一个适当的对话框。然后,开发人员重新编译资源,并将新的资源添加到应用程序的可执行文件中。

但是,如果以二进制形式存在适当的对话框,则开发人员可以通过使用三个Windows功能将数据直接复制到正在本地化的可执行文件。BeginUpdateResource函数为要更改其资源的可执行文件创建一个更新句柄。UpdateResource函数使用此句柄来添加,删除或替换可执行文件中的资源。EndUpdateResource功能关闭句柄。

通过BeginUpdateResource创建可执行文件的更新句柄后,应用程序可以反复使用UpdateResource来更改资源数据。对UpdateResource的每次调用都有助于添加,删除和替换的内部列表,但实际上并不将数据写入可执行文件。在关闭更新句柄之前,EndUpdateResource将累积更改写入可执行文件。

有时,应用程序必须复制资源或查找资源大小。LoadLibrary功能为要复制其资源的可执行文件提供模块句柄,并且LockResource函数提供指向指定模块中的资源数据的指针。SizeofResource函数返回指定资源的大小(以字节为单位)。