程序资源——资源类型
英文名称 | 数值 | 作用类型 |
RT_CURSOR | 1 | 依赖于硬件的游标资源。 |
RT_BITMAP | 2 | 位图资源。 |
RT_ICON | 3 | 依赖于硬件的图标资源。 |
RT_MENU | 4 | 菜单资源。 |
RT_DIALOG | 5 | 对话框。 |
RT_STRING | 6 | 字符串表条目。 |
RT_FONTDIR | 7 | 字体目录资源。 |
RT_FONT | 8 | 字体资源。 |
RT_ACCELERATOR | 9 | 快捷键表。 |
RT_RCDATA | 10 | 应用程序定义的资源 (原始数据)。 |
RT_MESSAGETABLE | 11 | 消息表条目。 |
RT_GROUP_CURSOR | 12 | 与硬件无关的游标资源。 |
RT_GROUP_ICON | 13 | 与硬件无关的图标资源。 |
RT_VERSION | 16 | 版本资源。 |
RT_DLGINCLUDE | 17 | 允许资源编辑工具将字符串与 .rc 文件相关联。 |
RT_PLUGPLAY | 19 | 即插即用资源。 |
RT_VXD | 20 | Vxd。 |
RT_ANICURSOR | 21 | 动画光标。 |
RT_ANIICON | 22 | 动画图标。 |
RT_HTML | 23 | HTML 资源。 |
RT_MANIFEST | 24 | 并行程序集清单。 |
资源语言通常写0,使用默认语言
当前用户的语言:1024 操作系统默认语言:2048 资源的名称可以是宽字符文本或者数字标识符,数值不超过655351.读取本程序自定义资源
资源数据是模块函数,提交资源编号和大小,可以得到资源的数据 整数 大小,数据=资源数据(1,@大小);//获取1号资源,用大小这个变量接收数据长度 下面是资源数据模块里面的代码解析 程序段 资源数据(编号,大小) 整数 资源=查找资源(0,编号,10);//模块写0是获取EXE本身的资源,类型10=自定义资源 整数 长度=资源大小(0,资源);//获取资源大小,用来告知调用者 整数 数据=加载资源(0,资源);//加载资源到数据变量 整数 内容=锁定资源(数据);//锁定数据这段内存才可以进行读写 如果(大小)长度>大小;;//需要获取大小提交变量指针非零,向这个地址写入资源大小 返回(内容)结束;//把数据的内容地址返回给调用者
2.更新文件资源
整数 大小,数据=文件内容("d:\123.jpg",@大小);//使用文件内容模块读取图片并得到文件大小 整数 模块=开更资源("d:\123.exe",假);//打开一个可执行程序,得到模块句柄 更新资源(模块,10,1,0,数据,大小);//资源类型10=自定义资源,名称标识为1,语言写0 停更资源(模块,假);//指定放弃为假,保存数据到文件资源中
3.枚举文件里的资源
整数 模块=加载库("测试.dll");//获取DLL里的资源,先要得到模块的句柄 枚举资源(模块, 2, @资源回调,0);//资源类型为2=位图,指定资源回调的指针地址 自定义参数是定义一个值,回调函数可以知道是执行哪里的代码 程序段 资源回调(模块,类型,名称,定义);//这里可以得到资源的类型和名称 整数 图片=载入位图(模块, 名称);//加载的位图可以加入图像列表或数组 图像(编号)=图片;编号++;//加入数组,并让编号递增 删除对象(图片);//加入之后删除图片对象 结束;//枚举资源通常是多个资源数据,这段代码是会循环多次调用 程序资源 ——相关函数
中文名称 | 英文名称 | 示例 | 作用 |
语言回调 | EnumResLangProc | 语言回调(模块,类型,名称,语言,定义) | 语言资源 函数一起使用的应用程序定义的回调函数。它接收资源项的类型、名称和语言 |
资源回调 | EnumResNameProc | 资源回调(模块,类型,名称,定义) | 枚举资源 函数一起使用的应用程序定义的回调函数。它接收资源项的类型和名称 |
类型回调 | EnumResTypeProc | 类型回调(模块,类型,定义) | 资源类型 函数一起使用的应用程序定义的回调函数。它接收资源项的类型 |
语言资源 | EnumResourceLanguagesExA | 语言资源(模块,类型,名称,回调,定义,标志) | 枚举与指定类型和名称的特定于语言的资源。标志:1=指定文件,2=关联.mui文件,4=MUI语言的.mui文件,8验证PE头 |
枚举资源 | EnumResourceNamesA | 枚举资源(模块,类型,回调,定义) | 枚举与指定类型的可执行文件或.mui文件的资源。 |
资源类型 | EnumResourceTypesExA | 资源类型(模块,回调,定义,标志) | 枚举与指定类型的可执行文件或.mui文件的资源类型。标志:1=指定文件,2=关联.mui文件,8验证PE头 |
查找资源 | FindResourceA | 查找资源(模块,资源,类型) | 确定指定模块中具有指定类型和名称的资源的位置。 |
查寻资源 | FindResourceExA | 查寻资源(模块,类型,名称,语言) | 确定指定模块中具有指定类型、名称和语言的资源的位置。 |
释放资源 | FreeResource | 释放资源(资源) | 递减已加载资源的引用计数。达到零时释放资源占用的内存。 |
加载资源 | LoadResource | 资源=加载资源(模块,资源ID) | 将指定的资源ID加载到全局内存中 |
锁定资源 | LockResource | 内存=锁定资源(资源) | 从指定的资源获取到数据的内存地址,此锁定是找到目标的意思,无需解锁 |
资源大小 | SizeofResource | 长度=资源大小(模块,资源) | 检索指定资源的大小(以字节为单位)。 |
开更资源 | BeginUpdateResourceA | 开更资源(文件名,删除资源) | 获取用于添加、删除或替换二进制模块中的资源的句柄。删除资源为真=删除已有资源 |
停更资源 | SizeofResource | 停更资源(模块,放弃) | 提交或放弃之前更新资源所做的更改。放弃为假=更新写入文件 |
更新资源 | UpdateResourceA | 更新资源(模块,类型,名称,语言,数据,大小) | 添加、删除或替换可移植可执行文件 (PE) 文件中的资源。 |