这个界面相信作为软件开发人员来说,都不会陌生。
从本章节起,分篇介绍如何来开发一个属于自己的资源提取软件。资源的提取有2种,一种是通过WindowsAPI接口来实现资源类型的枚举,一种是通过解析PE文件结构来获取资源类型的枚举。PE文件解析方式将放在后面章节,这次首先以WindowsAPI方式来进行讲解:这里主要用到3个接口EnumResourceTypes、EnumResourceNames、EnumResourceLanguages。3个接口分别是枚举资源类型、资源名称和资源语言。调用比较简单,后面章节主要介绍资源内容的解析。
常用资源类型如下:
//资源类型名称映射表
typedef struct tagRES_ID_NAME_TABLE
{
LPSTR id;
char name[_MAX_PATH];
}RES_ID_NAME_TABLE;
static RES_ID_NAME_TABLE ResIdNameTable[0x17] = {
{0, "Unknown"},
{RT_CURSOR, "光标"},
{RT_BITMAP, "位图"},
{RT_ICON, "图标"},
{RT_MENU, "菜单"},
{RT_DIALOG, "对话框"},
{RT_STRING, "字符串表"},
{RT_FONTDIR, "字体目录"},
{RT_FONT, "字体"},
{RT_ACCELERATOR, "加速器表"},
{RT_RCDATA, "自定义资源"},
{RT_MESSAGETABLE, "消息表"},
{RT_GROUP_CURSOR, "图标组"},
{0, "Unknown"},
{RT_GROUP_ICON, "光标组"},
{0, "Unknown"},
{RT_VERSION, "版本信息"},
{RT_PLUGPLAY, "即插即用资源"},
{RT_VXD, "Vxd"},
{RT_ANICURSOR, "动态光标"},
{RT_ANIICON, "动态图标"},
{RT_HTML, "HTML文档"},
{RT_MANIFEST, "XPManifest"},
};