• vc rc资源提取


    int LoadStream(WORD wResID, char **pData)
    {
        HRSRC   hResInfo = FindResource(NULL, MAKEINTRESOURCE(wResID), TEXT("RES"));
        HGLOBAL hResData = LoadResource(NULL, hResInfo);
        LPVOID    lpResData = LockResource(hResData);
        DWORD dwSize = SizeofResource(NULL, hResInfo);
    
        if (lpResData == nullptr || dwSize == 0)
        {
            return 0;
        }
    
        *pData = (char *)malloc(dwSize);
        if (!pData)
        {
            return 0;
        }
    
        memcpy(*pData, lpResData, dwSize);
        FreeResource(hResData);
    
        return dwSize;
    }

    以上是通过资源id提取字符串流。我想了一下如何通过资源名提取资源数据,例如rc问卷添加了:IDR_RES1             RES                     "res\fontsHei.ttf" 添加了指定资源,后面想通过"res\fontsHei.ttf"获得资源数据。

    我发现windows编译exe没有将源文件名写入安装包中,只写入一个resID。最后的解决方案:通过zip压缩所有资源文件,在rc文件中导入改zip压缩包,使用上面LoadSteam接口获取zip数据后,通过解压接口来获得资源路径和资源数据。

    转载请注明出处,from 博客园HemJohn

  • 相关阅读:
    python之----------字符编码具体原理
    python ---------函数
    python爬虫
    python str 与repr区别
    python 正则表达式
    python 正则表达式里使用 split()方法
    python 基础介绍
    python 数据类型--列表
    python 字符串操作
    django(1.6)操作自带的数据库
  • 原文地址:https://www.cnblogs.com/HemJohn/p/13186921.html
Copyright © 2020-2023  润新知