在Visual Studio中的C++可执行文件中静态包含大型二进制文件



我有一个大的二进制文件,大约1gb大小。我想将其静态地包含在Visual Studio 2019中编译的C++可执行文件中。可执行文件是为Windows构建的。

我想在运行时访问二进制文件,但不想将其与应用程序一起发布。因此,在运行时从文件中读取不是一种选择。

我看到的解决方案只是将其作为一个字节数组,但这很麻烦,没有更好的解决方案吗?

将其作为资源文件包含会是什么样子?

可以使用资源文件完成。右键单击项目>添加>资源文件>导入>选择文件>自由选择资源类型名称。

#include <Windows.h>
#include "resource.h"
... 
# IDR_SOMETHING is the resource identifier, can be found in the autogenerated resource.h
HRSRC res = FindResource(NULL, MAKEINTRESOURCE(IDR_SOMETHING), "Res type name you choose");
DWORD size = SizeofResource(NULL, res);
HGLOBAL data = LoadResource(NULL, res);

data将是指向资源所在的内存开始的简单指针。

相关内容

  • 没有找到相关文章