Copy an .exe to a new .exe file using C/C++

Discussion in 'C++' started by Avenger625, Feb 1, 2011.

  1. Avenger625

    Avenger625 New Member

    Joined:
    Feb 1, 2011
    Messages:
    20
    Likes Received:
    2
    Trophy Points:
    0
    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......don't understand why...??!!

    Please reply fast!!! It's URGENT....!!!!
    Thnx!
     
  2. poornaMoksha

    poornaMoksha New Member

    Joined:
    Jan 29, 2011
    Messages:
    150
    Likes Received:
    33
    Trophy Points:
    0
    Occupation:
    Software developer
    Location:
    India
  3. alpha34

    alpha34 New Member

    Joined:
    Dec 2, 2009
    Messages:
    25
    Likes Received:
    1
    Trophy Points:
    0
    Occupation:
    student
    Location:
    somewhere in india
    borland c++ or any c++ compiler for instance which uses DOS mode to compile and run will not work on windows 7 coz windows 7 now doesn't support DOS properly u need to switch to Dev cpp version for using c or c++ program compilation and running....
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice