在使用资源之前,应用程序必须将其加载到内存中。FindResource和FindResourceEx函数在模块中找到一个资源,并返回二进制资源数据的句柄。FindResource按照类型和名称查找资源。FindResourceEx按照类型,名称和语言查找资源。有关FindResource的相关信息也适用于FindResourceEx.
LoadResource函数使用FindResource返回的资源句柄将资源加载到内存中。应用程序使用LoadResource加载资源后,Windows将自动卸载并重新加载资源作为内存条件和应用程序执行需求。因此,应用程序不需要明确地卸载不再需要的资源。
应用程序可以使用FindResource和LoadResource查找和加载任何类型的资源,但是只有在应用程序必须访问二进制资源数据以用于后续函数调用时,才应使用这些函数。要立即使用资源,应用程序应使用以下特定于资源的函数之一在一次调用中查找和加载资源。
功能 | 行动 |
FormatMessage | 加载和格式化消息表条目。 |
LoadAccelerators | 加载加速器表。 |
LoadBitmap | 加载位图资源。 |
LoadCursor | 加载游标资源。 |
LoadIcon | 加载图标资源。 |
LoadImage | 加载图标,光标,位图或增强的图元文件资源。 |
LoadMenu | 加载菜单资源。 |
LoadString | 加载一个字符串表条目。 |
在终止之前,应用程序应通过使用下表中的其中一个功能来释放加速器表,位图,光标,图标和菜单占用的内存。
资源 | 释放功能 |
加速器表 | DestroyAcceleratorTable |
位图 | DeleteObject |
光标 | DestroyCursor |
图标 | DestroyIcon |
菜单 | DestroyMenu |
当应用程序终止时,Windows会自动释放其他资源所占用的内存。