首页 > 解决方案 > Visual Studio 嵌入大型资源文件(将近 4gb)

问题描述

我正在尝试嵌入一个大型资源文件(几乎 4gb),它是一个 .dat 文件。但是我遇到了引发错误的问题

"Error reading resource 'Sx64.x-none.dat' -- 'Specified argument was out of the range of valid values.

Visual Studio 的嵌入式资源的大小似乎存在限制。有没有办法增加最大尺寸?或其他一些解决方法?我试图不使用链接资源或使用 exe 复制另一个文件。

标签: visual-studioembedded-resourceresource-files

解决方案


虽然在 PE 格式规范中该SizeOfImage值是 32 位无符号整数,理论上最多可以处理 4 GiB,但实际上可执行文件的限制更低。stackoverflow 上的一些用户已经测试这种行为。但是,仍然可以使可执行文件更大并且可以工作(仅在 64 位 Windows 上),但数据必须保留在文件末尾的图像部分之外,因此加载程序不会尝试分配它。这是一种不好的做法,正如其他人在评论中所建议的那样,我建议将它与您的可执行文件一起放在一个单独的文件中。


推荐阅读