请用MFC或C++写一段代码
本帖最后由 朱朱你堕落了 于 2024-6-28 19:51 编辑C++生成一个EXE,大小如下图大小一样的文件即可,这个EXE当然无实际意义,也无法正常打开,这无所谓,
这个EXE用十六进制编辑工具打开,里面全是00即可,MFC或C++实现都可以,请发下源码。
https://im.gurl.eu.org/file/27f0307f2590090d4e9a2.png CFile cf;
if (cf.Open(L"D:\\dump_.exe", CFile::modeCreate | CFile::modeReadWrite))
{
cf.SetLength(638976);
cf.Close();
}
else
{
AfxMessageBox(L"文件创建失败");
}
请问这个可以吗?
https://wwk.lanzouj.com/ibUJm22z475g
密码:1g7r
https://s21.ax1x.com/2024/06/28/pk66BAe.png lccccccc 发表于 2024-6-28 19:45
请问这个可以吗?
https://wwk.lanzouj.com/ibUJm22z475g
密码:1g7r
麻烦发下C++源码,别的语言的源码看不懂,也没对应的编译器。 来一个c的
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
FILE *file;
file = fopen("test.exe", "wb");
if (file == NULL) {
printf("打开出错\n");
return 1;
}
char* buf = (char*)malloc(638976);
memset(buf, 0, 638976);
// 写入文件
size_t wlen = fwrite(buf, sizeof(char), 638976, file);
if (wlen != 638976) {
printf("写入出错\n");
fclose(file);
free(buf);
return 1;
}
// 关闭文件
fclose(file);
free(buf);
printf("写入完成\n");
return 0;
} 做作业吗?随便找个ai都能解决吧 苏紫方璇 发表于 2024-6-28 19:52
来一个c的
#include
#include
比方说,要生成3个G或5个G大小的EXE,不知道malloc会不是申请失败,意思就是说,当数据很大时,有可能调用一次malloc就失败,我贴子中的大小只是举例而已,我想的是写一个循环,比方说每次写入1000大小的数据,直到3个G大小全面写入完毕,这样比较完美。 苏紫方璇 发表于 2024-6-28 19:52
来一个c的
#include
#include
最佳答案牛B,我看了下,
CFile::SetLength
virtual void SetLength(
ULONGLONG dwNewLen
);
ULONGLONG类型这个牛B,这个生成10个G都没事。
朱朱你堕落了 发表于 2024-6-28 19:49
麻烦发下C++源码,别的语言的源码看不懂,也没对应的编译器。
这是我写的c++的源码:
#include <stdio.h>
int main() {
FILE *file = fopen("dumped_.exe", "wb");
if (file == NULL) return 1;
for (int i = 0; i < 638976; ++i) {
unsigned char bit = 0;
if (fwrite(&bit, sizeof(unsigned char), 1, file) != 1) {
fclose(file);
return 1;
}
}
fclose(file);
printf("Completed.");
return 0;
} 朱朱你堕落了 发表于 2024-6-28 19:58
比方说,要生成3个G或5个G大小的EXE,不知道malloc会不是申请失败,意思就是说,当数据很大时,有可能调 ...
3.5G的肯定申请失败,这种得分块写,楼下那个1字节循环的就可以
页:
[1]
2