win32释放资源

Posted icyvalley

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了win32释放资源相关的知识,希望对你有一定的参考价值。

BOOL FreeMyResource(UINT uResouceName,char *szResourceType,char *szFileName)
{
    HRSRC hRsrc = ::FindResource(NULL,MAKEINRESOURCE(uResouceName),szResourceType);
    
    if(NULL == hRsrc)
    {
        ShowError("FindResource");
        return FALSE;
    }
    
    DWORD dwSize = ::SizeofResource(NULL,hRsrc);
    
    if(0 >= dwSize)
    {
        ShowError("SizeofResource");
        return FALSE;
    }
    
    HGLOBAL hGlobal = ::LoadResource(NULL,hRsrc);
    
    if(NULL == hGlobal)
    {
        ShowError("LoadResource");
        return FALSE;
    }
    
    LPVOID lpVoid = ::LockResource(hGlobal);
    
    if(NULL == lpVoid)
    {
        ShowError("LockResource");
        return FALSE;
    }
    
    FILE *fp = NULL;
    
    fopen_s(&fp,szFileName,"wb+");
    
    if (NULL == fp)
    {
        ShowError("OpenFileFailed");
        return FALSE;
    }
    
    fwrite(lpVoid,sizeof(char),dwSize,fp);
    
    fclose(fp);
    
    return TRUE;
    
}

 

以上是关于win32释放资源的主要内容,如果未能解决你的问题,请参考以下文章

进程崩溃时未释放 Win32 命名互斥锁

无论如何在 Win32 API 中动态释放线程本地存储?

如何在 Win32 窗口中实现 MFC 资源?

Win32编程API 基础篇 -- 5.使用资源

win-socket

使用 win32api keybd_event 选择文本