极语言官方网站

程序资源——资源类型

英文名称数值作用类型
RT_CURSOR1依赖于硬件的游标资源。
RT_BITMAP2位图资源。
RT_ICON3依赖于硬件的图标资源。
RT_MENU4菜单资源。
RT_DIALOG5对话框。
RT_STRING6字符串表条目。
RT_FONTDIR7字体目录资源。
RT_FONT8字体资源。
RT_ACCELERATOR9快捷键表。
RT_RCDATA10应用程序定义的资源 (原始数据)。
RT_MESSAGETABLE11消息表条目。
RT_GROUP_CURSOR12与硬件无关的游标资源。
RT_GROUP_ICON13与硬件无关的图标资源。
RT_VERSION16版本资源。
RT_DLGINCLUDE17允许资源编辑工具将字符串与 .rc 文件相关联。
RT_PLUGPLAY19即插即用资源。
RT_VXD20Vxd。
RT_ANICURSOR21动画光标。
RT_ANIICON22动画图标。
RT_HTML23HTML 资源。
RT_MANIFEST24并行程序集清单。

资源语言通常写0,使用默认语言

当前用户的语言:1024

操作系统默认语言:2048

资源的名称可以是宽字符文本或者数字标识符,数值不超过65535


1.读取本程序自定义资源
资源数据是模块函数,提交资源编号和大小,可以得到资源的数据
整数 大小,数据=资源数据(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) 文件中的资源。