我这里使用VC6来演示是因为最近我用VC6比较多,其实用新版的visual studio 2019做法是类似的。
本文参考了这篇博客,他介绍得比较详细,大家有兴趣可以去看看
https://blog.csdn.net/chaoguodong/article/details/39666653
首先,想要在文件中嵌入数据,最暴力的做法是将文件通过xxd工具转换成字符数组,写入到源码中。我之前写了一篇博客介绍这种做法:
用数组存储二进制数据
这种做法简单粗暴,缺点是编译时间比较长,代码也比较长(莫名其妙就几十万行代码了)。不推荐这种做法,更好的做法是使用自定义资源。
要在VC6中使用资源,首先要新建一个资源脚本
然后在资源视图中新建一种资源,我这里命名为binary
创建了自定义资源类型后,右键资源类型,点import
然后选择想要导入的文件即可。比如我这里导入了一个EXE
资源ID可以右键-属性进行修改,待会要用到这个ID
下面给出一个简单的WIN32应用程序,演示如何使用刚才导入的EXE资源。
程序的功能是将该EXE读取到内存中,然后写入到磁盘里。