UpdateResource函数添加,删除或替换可执行文件中的资源。
BOOL UpdateResource(
HANDLE 【更新】, | //更新文件句柄 |
LPCTSTR 【//值类型缓冲区的地址】, | //要更新的资源类型的地址 |
LPCTSTR 【lpName】, | //要更新的资源名称的地址 |
WORD 【// language identifier of resource】, | //资源的语言标识符 |
LPVOID 【的lpData】, | //资源数据的地址 |
DWORD 【cbData】 | //资源数据长度,以字节为单位 |
); |
参数
【更新】
指定一个更新文件句柄。该句柄由BeginUpdateResource函数返回。
【//值类型缓冲区的地址】
指向要终止的字符串,指定要更新的资源类型。此参数也可以是传递给MAKEINTRESOURCE宏的整数值,也可以是以下预定义资源类型之一:
值 | 含义 |
RT_ACCELERATOR | 加速器表 |
RT_ANICURSOR | 动画光标 |
RT_ANIICON | 动画图标 |
RT_BITMAP | 位图资源 |
RT_CURSOR | 硬件依赖光标资源 |
RT_DIALOG | 对话框 |
RT_FONT | 字体资源 |
RT_FONTDIR | 字体目录资源 |
RT_GROUP_CURSOR | 与硬件无关的游标资源 |
RT_GROUP_ICON | 独立于硬件的图标资源 |
RT_ICON | 硬件依赖图标资源 |
RT_MENU | 菜单资源 |
RT_MESSAGETABLE | 消息表条目 |
RT_RCDATA | 应用程序定义资源(原始数据) |
RT_STRING | 字符串表条目 |
RT_VERSION | 版本资源 |
【lpName】
指向一个以null结尾的字符串,指定要更新的资源的名称。此参数也可以是传递给MAKEINTRESOURCE宏的整数值。
【// language identifier of resource】
指定要更新的资源的语言标识符。有关构成语言标识符的主要语言标识符和子语言标识符的列表,请参阅MAKELANGID宏
【的lpData】
指向要插入到可执行文件中的资源数据。如果资源是预定义类型之一,则数据必须是有效的并且正确对齐。请注意,这是存储在可执行文件中的原始二进制数据,而不是由LoadIcon,LoadString或其他资源特定的加载函数提供的数据。包含字符串或文本的所有数据必须为Unicode格式; 【的lpData】不能指向ANSI数据。
如果【的lpData】为NULL,则从可执行文件中删除指定的资源。
【cbData】
指定【的lpData】中资源数据的大小(以字节为单位)。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
应用程序可以重复使用UpdateResource来更改资源数据。对UpdateResource的每次调用都有助于添加,删除和替换的内部列表,但实际上并不将数据写入可执行文件。应用程序必须使用EndUpdateResource函数将累积更改写入可执行文件。
也可以看看
BeginUpdateResource, EndUpdateResource, LoadIcon, LoadString, LockResource, MAKEINTRESOURCE, MAKELANGID, SizeofResource