当使用完资源后,必须通过调用函数以释放加速器表、位图、光标、目标以及某单所占的内存资源:加速器表:DestroyAcceleratorTable;位图:DeleteObject;光标:DestroyCursor;图标:Destroylcon;菜单:DestroyMenu。
当过程创建终止时,系统将自动删除这些资源。但是调用相关函数也可以保留内存减少过程的工作设置所占空间。
相关函数说完了,最后再理一下代码流程。
首先通过FindResource函数定位程序里的资源,主要根据资源类型,和资源名称定位,获得资源消息块的句柄。
然后根据获得的句柄,再通过SizeofResource函数获取资源的大小。
然后通过LoadResource函数把资源加载到程序内存中。
再然后通过LockResource函数锁定加载到内存中的资源,防止程序中的其他操作影响这块内存。返回值就是资源在进程内存中的起始地址。
最后资源大小以及进程内存的起始地址,可以将资源数据读出并保存为本地文件。
还有最后一点需要注意,在main()函数里的第一行和第三行需要根据自己的实际情况进行修改。
案例演示创建新项目,写入上述代码,然后运行程序,查看窗口,和项目目录,发现运行成功,资源释放成功。
小结关于资源释放就说到这里,如有错误请斧正。