1. FindResource用来在一个指定的模块中定位所指定的资源:
2. HRSRC FindResource(
3. HMODULE hModule, //包含所需资源的模块句柄,如果是程序本身,可以置为NULL
4. LPCTSTR lpName, //可以是资源名称或资源ID
5. LPCTSTR lpType //资源类型,在这里也就是我们自己指定的资源类型
6. );
7. LoadResource用来将所指定的资源加载到内存当中;
8. HGLOBAL LoadResource(
9. HMODULE hModule, //模块句柄,同上
10. HRSRC hResInfo //需要加载的资源句柄,这里也就是FindResource的返回值
11. );
12. LockResource用来锁定内存中的资源数据块,它的返回值也就是我们要使用的直系指向资源数据的内存指针;
13. LPVOID LockResource(
14. HGLOBAL hResData //指向内存中要锁定的资源数据块,这里也就是LoadResource的返回值
15. );
列子:
HRSRC hr = FindResource(0, MAKEINTRESOURCE(IDR_YX1), "YX");
HGLOBAL hg = LoadResource(0,hr);
LPCVOID pBuffer = LockResource(hg);
DWORD dwSize = SizeofResource(NULL, hr);
HANDLE hd = CreateFile("c://bin.exe",GENERIC_READ|GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_HIDDEN,0);
DWORD zsdx;
WriteFile(hd,pBuffer,dwSize,&zsdx,0);
CloseHandle(hd);