我想做一个虚拟的Win32 EXE文件,它比它应该是大得多。因此,默认情况下,样板Win32可执行文件的大小为80KB。我想要一个5MB的,用于测试其他一些实用程序。
第一个想法是添加一个资源,但事实证明,当涉及到内存分配时,嵌入式资源与5MB的代码不同。我在想,我可以引用一个大的库,并最终得到一个巨大的EXE文件?如果没有,也许可以编写几千个类似的方法,如AddNum1、AddNum2等?
任何简单的想法都是非常受欢迎的。
发布于 2010-10-01 23:02:25
简单地定义一个大的静态字符数组怎么样?
char const bigarray[5*1024*1024] = { 1 };
另请参阅我在这个帖子中的另一个答案,我建议静态链接到大型库。如果你引用足够多的库代码,这肯定会引入真正的代码。
编辑:添加了非零初始化,因为编译器/链接器会以优化的方式处理仅包含零的数据。
编辑:添加了对我的其他答案的引用。
EDIT:增加了const限定符,所以bigarray会被很多编译器放在代码中。
发布于 2010-10-01 23:10:45
char big[5*1024*1024] = {1};
您需要将其初始化为非0的值,否则编译器/链接器可能会对其进行优化。
发布于 2010-10-01 23:45:02
如果这是您想要增加的文件大小,则将一个文本文件附加到所需大小的exe文件的末尾。
我过去常常在客户抱怨小前任的时候这样做。他们没有意识到小前任和大前任一样专业。事实上,在一些语言中有一个bloat()命令来增加exe的大小,通常在BASIC编译器中。
编辑:找到人们使用的一段代码的旧链接:http://www.purebasic.fr/english/viewtopic.php?f=12&t=38994
https://stackoverflow.com/questions/3840374
复制相似问题