• 环境:Visual Studio2010
  • 语言: C++
  • 实际操作:
    1.将文件导入资源文件

    资源文件中右键—添加----资源

    选择导入—导入资源----并设置资源类型。资源类型命名随意,但是最好还是要和实际文件的类型一致比较好

  • 导入成功后,在Resource.h文件中,会产生相应的资源id,每个资源id对应的是一个完整的文件—即你导入的文件,准确的来说,你导入的文件,实质上,是被转成字节码保存起来的。有字节码,其实就可以生成该文件了,这是原理的问题,作为补充。
  • 复制下列代码 到您的主文件cpp中
bool ExportToFile(const std::wstring& exportFilePath, const void* pBuffer, DWORD bufferLength)
{if (pBuffer == NULL || bufferLength <= 0){return false;}HANDLE hFile = ::CreateFile(exportFilePath.c_str(),GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);if (hFile == NULL){return false;}DWORD writetem = -1;BOOL ret = ::WriteFile(hFile, pBuffer, bufferLength, &writetem, NULL);if (writetem != bufferLength){::CloseHandle(hFile);return false;}::CloseHandle(hFile);return true;
}/**
* exportPath:文件路径,
* resourceId:资源ID :Resource.h中
* 导出资源包转成指定文件
*/
bool ExportRes(const std::wstring& exportPath, DWORD resourceId)
{HINSTANCE m_hInstance = g_hinstance;// "ZIP" 是自定义资源类型,可以自己决定HRSRC hrSrc = FindResource(m_hInstance, MAKEINTRESOURCE(resourceId), _T("ZIP"));if (hrSrc == NULL){return false;}HGLOBAL hGlobalResource = LoadResource(m_hInstance, hrSrc);if (hGlobalResource == NULL){return false;}const void* pResourceData = ::LockResource(hGlobalResource);if (!pResourceData){return false;}DWORD resLength = SizeofResource(m_hInstance, hrSrc);bool ret = ExportToFile(exportPath, pResourceData, resLength);FreeResource(hGlobalResource);return ret;
}

上面的代码是将字节码转成您指定的文件。
其中资源id就是Resouce.h中定义的宏命令
exportPath指的是导出的文件路径

  • 调用如下:

    直接用即可。
  • 运行程序:

    可以看出 生成指定文件成功。

Windows下C++将各种资源文件引入exe文件(即无需携带很多res资源包)相关推荐

  1. Linux下的GCC和Windows下Visual Studio的编译所生成的文件作用

    首先先说一下Linux吧因为这也是博主最早接触的编程开发环境所以比较熟悉的! Linux下就说GCC GCC编译如果不指定编译选项的话是一步到位没有额外的后缀名文件! .i文件:.i文件是GCC -E ...

  2. .pages怎么在windows上打开?Windows下打开在Mac中编辑的.pages文件方法

    .pages怎么在windows上打开?Windows下打开在Mac中编辑的.pages文件方法 1.最简单的方法是修改后缀名为.zip然后解压,解压后就可以看到一张图片,这个就是文档内容了. 2.更 ...

  3. Windows编译开源代码方法之关于lame.exe文件的测试及过程

    Windows编译开源代码方法之关于lame.exe文件的测试及过程 最终结果(PS:使用markdown不熟悉,记得在井号后面加个空格才能触发) 起因:foobar2000在格式转换中需要lame. ...

  4. 系统中的obj文件、dll文件、so文件、lib文件、exe文件、vcproj文件、sln文件

    1. 源代码(.c等)要经过编译器的编译得到目标代码(.obj),再经过链接器使目标代码和库函数及启动代码合并成一个文件,即可执行文件exe. 2. 生成可执行文件时的链接过程又可根据链接库(动态链接 ...

  5. 潇洒郎:用cxfreeze打包py文件为exe文件全过程——呕心吐血经验——安装、调试、解决KeyError: 'TCL_LIBRARY'问题、最终成功、打包方便技巧

    用cxfreeze打包py文件为exe文件全过程:必须全部看完,正确在后面 注意:当前环境是Play_Craw, pip install cx-freeze 时自然安装到了C:\Users\xiaos ...

  6. exe4j 打包 jar 文件为 exe 文件(GUI程序)

    exe4j 打包 jar 文件为 exe 文件(GUI程序) 1.资源分享 2.把项目打包成 exe 文件 2.1 把项目打包成 jar 包(用 fatjar 打包项目) (1) 把 net.sf.f ...

  7. Python将py文件生成exe文件

    使用PyCham软件运行生成可执行文件后,最完美的就是将py文件生成exe文件,这样可以任意复制移植到其他电脑上,供他人共享. 由于新手初步尝试,自己一个人摸索,遇到了很多坑.这里先给出最简单有效的方 ...

  8. com文件与exe文件

    COM文件是一种可执行程序的内存映象文件,它与只有16位地址线的8位机上的CP/M操作系统下的可执行程序结构相似.在COM程序执行过程中,除了调用DOS功能和 ROM BIOS 功能,以及用户特意安排 ...

  9. PyInstaller库的使用(py文件转exe文件)及Koch曲线及推广,绘制康托尔集

    PyInstaller库概述 将.py源代码转换成无需源代码的可执行文件 意思就是将.py文件转换为.exe文件 PyInstaller库是第三方库 - 官方网站:http://www.pyinsta ...

最新文章

  1. 如何使自己的程序只运行一次
  2. 用python爬虫的基本步骤-Python爬虫入门:爬虫基础了解
  3. 音视频开发基础概述 - PCM、YUV、H264、常用软件介绍
  4. openfire在windows环境和linux环境下的配置
  5. Spark _26_Spark On Hive的配置
  6. 智能市场变革,独辟蹊径的机器人营销
  7. Linux赋予目录或文件任何人都可以读、写、执行的操作
  8. php空间 数据库设计,php进阶之数据库设计/ 选择合适的表引擎
  9. 学习ARM64页表转换流程
  10. php合成图片系统,php图片合成
  11. 内存管理有哪几种方式
  12. python表示倍数的英语句型_5种倍数表达法句型
  13. inventor 波纹阵列_Inventor装配零部件阵列功能详解
  14. 回调函数,事件管理器
  15. cpython-36m-x86_64-linux-gnu.so undefined symbol玄学解决
  16. 这交互炸了(三):闪屏页是像云一样消失的
  17. 美通社企业新闻汇总 | 2019.2.27 | 中国大学名次在世界大学排名中继续攀升;吉利2021年发布支持5G量产车型...
  18. 剑指 Offer 10- I. 斐波那契数列
  19. javascript中reduce的用法
  20. mac的safari浏览器如何开启开发者模式

热门文章

  1. 一女程序员被判 9 个月:因薪酬等问题离职,rm -f * 删库,瘫痪 6 个小时
  2. K8s与Docker
  3. leetcode题解14-最长公共前缀
  4. HashMap及ConcurrentHashMap基本原理概述
  5. Odoo与浪潮合资研发PS Cloud之如何配置和运行调度程序
  6. pyspark对应的scala代码PythonRDD类
  7. 【总结】C++逻辑与或
  8. Linux--iptables常用命令
  9. iOS 摇一摇功能的实现
  10. ACM学习历程—HDU 2112 HDU Today(map spfa 优先队列)