c++builder向exe写入一行字母后,exe不能正常运行? - C++ Builder / Windows SDK/API
--向EXE写入“I Love You”
char x[]="I Love You";
FILE *fp;
fp = fopen(".\\test.exe","wb+");
fseek(fp,0L,2);
fwrite(x, 6,12,fp);//在末尾写入“I Love You”
fclose(fp);
--向EXE读取“I Love You”
char aa[4230];
fread(aa,6,12 ,fp);//向EXE读取“I Love You”
fclose(fp);
????写入EXE后,为什么不能运行EXE????????????????????
[解决办法]
好像应该是fp = fopen(".\\test.exe","a+"); 才对吧
[解决办法]
char x[] = "I Love You";int nLen = strlen(x);FILE *fp;// 向EXE写入字符串fp = fopen("D:\\ccrun\\123.exe", "a+");if (fp){ fseek(fp, 0L, SEEK_END); fwrite(x, nLen, 1, fp); // 在末尾写入“I Love You” fclose(fp); MessageBox(0, "写入完成", "写入", 0);}// 从EXE读取字符串fp = fopen("D:\\ccrun\\123.exe", "rb");if (fp){ fseek(fp, 0 - nLen, SEEK_END); char *aa = new char[nLen + 1]; memset(aa, 0, nLen + 1); fread(aa, nLen + 1, 1, fp); fclose(fp); MessageBox(0, aa, "读取", 0); delete []aa;}
[解决办法]
在中间写,就很复杂咯。会破坏原有的数据或代码