How to copy an .exe to a new .exe file using C/C++?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Arnold Calvert
    New Member
    • Feb 2011
    • 1

    How to copy an .exe to a new .exe file using C/C++?

    Let there be an executable file say, t1.exe. If I run t1.exe then it shall copy itself to

    a new executable file say t2.exe.

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <conio.h>
    
    void main()
    {
    FILE *fp,*tp;
    unsigned long int t=0;
    tp=fopen("t2.exe","wb");
    //rewind(tp);
    if((fp=fopen("t1.exe","rb"))!=NULL)
    {
    fseek(fp,0L,2);
    unsigned long int pos=ftell(fp);
    rewind(fp);
    do{
    fputc(fgetc(fp),tp);
    t++;
    }while(t!=pos+1);
    }
    
    fcloseall();
    //system("t2.exe");
    printf("End of t1");
    getch();
    }
    t2.exe is created but when I run this it says "t2 has stopped working." I'm using Windows

    7(Home Basic) 64bit. The program is compiled with Borland C++ V. 5.02.

    And amazingly t1.exe and t2.exe has exactly same file size(in bytes) but still t1.exe

    works but t2.exe doesn't......do n't understand why...??!!

    Please reply fast!!! It's URGENT....!!!!
    Thnx!
    Last edited by Stewart Ross; Feb 1 '11, 08:28 AM. Reason: fixed end code tag
Working...