FindResource()函数

来源:互联网 发布:cf宝宝刷枪软件 编辑:程序博客网 时间:2024/05/16 05:13
 函数功能:该函数确定指定模块中指定类型和名称的资源所在位置。

    函数原型:HRSRC FindResource(HMODULE hModule,LPCTSTR lpName,LPCTSTR lpType);

    参数:

    hModule:处理包含资源的可执行文件的模块。NULL值则指定模块句柄指向操作系统通常情况下创建最近过程的相关位图文件。

    lpName:指定资源名称。若想了解更多的信息,请参见注意部分。

    lpType:指定资源类型。若想了解更多的信息,请参见注意部分。作为标准资源类型。这个参数的含义同EnumResLangProc/lpType。

    返回值:如果函数运行成功,那么返回值为指向被指定资源信息块的句柄。为了获得这些资源,将这个句柄传递给LoadResource函数。如果函数运行失败,则返回值为NULL。若想获得更多错误信息,请调用GetLastError函数。

    注意:如果参数lpType或lpName的高字节为O,那么其低字节中所给定的资源的类型或名称标识说明。另外,这些参数指向以NULL为终止符的字符串。字符串的第一个字符是#,后面的字符表示十进制数来表示源类型或名称的整数标识符。例如。字符串"#258"表示整数标识符258。

    如果用整数标识符替代名称提交资源,用程序将减少所需的内存容量。

    当使用完加速器表,位图,光标,图标,或是菜单后,可以通过调用下表所列举的函数释放内存。加速器表:DestroyAcceleratorTable;位图:DeleteObject;光标:DestroyCursor;图标:Destroylcon;菜单DestroyMenu。

    当过程创建资源终止时,系统将自动删除这些资源。然而通过调用适当的函数可以保留内存,减少过程中工作设置所需的空间大小。

    应用程序可以使用FindResource函数去查找任何种类资源,但是这个函数只有在应用程序并发调用LoadLibray和LockResource函数来存取二进制资源时才被使用。

    如果想立即使用某一资源,应用程序将使用下面详细资源函数列表中某一函数去查找装载所需资源,FormatMessage:装裁且格式化信息表接口:LoadAccclerators:装载加速器表;LoadBltmap:装载位图资源;LoadCursor:装载光标资源;Loadlcon:装载图标资源;

    LoadMenu:装载菜单资源;LoadString:装载字符串表资源。

    例如,应用程序可以使用Loadlcon函数装载某一图标以在屏幕上显示。但是,如果是装载某一图标为了将它的数据复制到另一个应用程序中,那么这个应用程序就应该使用FindResource和LoadResource函数。

    字符串资源存储在由若干部分组成的某区域,每部分有16个字符串。每部分的字符串是按统一计数方式排列的有序队形式存储的。

    TheLoadstring函数将从相应的区域中摘取字符串资源。

    参数hModule不能为NULL句柄。

    参数lpName不支持ID为零的资源,即FindResource(h,o,t)不能按预期工作。

    不可能在IpTyPe参数中传递RT_ANICURSOR或RT_ANllCON的值。