CODE: char    strFileName[MAX_PATH];
GetModuleFileName(NULL, strFileName, sizeof(strFileName));

FILE *pFile =fopen(strFileName,"r");
char *pBuf;
fseek(pFile,0,SEEK_END);
int len =ftell(pFile); pBuf =new char [len+1];
fseek(pFile, 0, SEEK_SET);
fread(pBuf,1,len,pFile);
pBuf[len] =0;
fclose(pFile);
FILE *pFile1 =fopen("c:\\1.exe","w");
fwrite(pBuf,1,len,pFile1);
fclose(pFile1);
MessageBox(NULL,"Test",NULL,NULL);创建在C:的1.exe 运行不了 运行了出线黑窗口 就像dos命令符 那样  不过字节数一样啊不知错在哪里了呢  我这程序的意思是:  读取当前程序  创建C:\1.EXE 往里面写入读取到得内容

解决方案 »

  1.   

    可以用支持二进制的文本编辑器,如UltraEdit,打开两个EXE文件比较一下,看看哪里不同
      

  2.   

    即使1.exe和当前程序完全一样,也不能运行,除非你改名字,否则又生成一个 1.exe,而当前1.exe在运行。
      

  3.   

    FILE *pFile =fopen(strFileName,"rb");
    ....
    FILE *pFile1 =fopen("c:\\1.exe","wb");
    然后运行的时候1.exe先改个名字
      

  4.   

    以二进制方式打开和写入FILE *pFile =fopen(strFileName,"r");
      
    FILE *pFile1 =fopen("c:\\1.exe","wb");
      

  5.   

    参数不对
    w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。 改成a+试试
    FILE *pFile1 =fopen("c:\\1.exe","a+");