ss_blog_claim=752cdf4fa7cc7b60527b400da1af07d5

Written on April 9th, 2009 at 12:15 am by Shunmugha

16 Comments

How to take Screenshot of c/c++ graphics program in turbo c without using Windows98

Many face problem of how to take Screenshot of C/C++ graphics program done using Turboc.Especially students.The reason is Print Screen nor any screen Capture software work in Graphics Mode of Turboc.End result not able to show output to their teachers or doing paint work in MS paint :)

Here is a simple solution to it..

1.compile your code.
2.Now select Build All.(compile->Build all)
This will create a Exe of your program in the current working directory.
3.Download DosBox
4.Install it and run the EXE.

dosbox How to take Screenshot of c/c++ graphics program in turbo c without using Windows98
5.Now you should mount the current working directory of turboc .
For example: type

mount o e:/TCC

mounting dosbox
6.Now TCC folder will be mounted in to a Virtual Drive o.
7.Navigate to virtual drive o.
naviagate
8.Now type the name of the program.

For Example: grpahics.exe

output
9.you can see the output.Now press “print Screen” or use any software to capture the output.For full screen press ALT+ENTER.

Hope this post helped..
Know any other easier method do let me know..

Want useful tips like this in future too?Dont miss out any updates ,Just Sign Up for Free Newsletter below

, , , , , , , , ,

16 Responses to “How to take Screenshot of c/c++ graphics program in turbo c without using Windows98”


  1. thegands

    11 months ago

    that is awesome!


  2. admin

    11 months ago

    Hope it was useful to you:)


  3. Pallab

    11 months ago

    DOSBox can really be a life-saver. Unfortunately even dosbox doesnt work properly in Win7..and graphics program doesn’t work. Do you know any way to run TC 3.0 graphics programs in Win7?


  4. admin

    11 months ago

    @pallab

    Sorry i dont know..:cry: I am still to try it on windows 7..But sure will let you know once i find a soluton…


  5. Vinayak

    10 months ago

    DOSBOX works really nice, but there is a problem.
    I have an egg catching game, in the first screen the title”EGG GAME” is in calligraphy type of font and has font size of 7 in turbo c++.
    But when I do step 8 i.e., type the name egg.exe the font size is reduced to normal size and even the font type has changed to , i think times roman.Could U please tell me how to rectify it


  6. admin

    10 months ago

    I am not sure with the pro..I feel its using the default font ..
    I tried out its working fine..

    Check this snap i took using DOSBOX only

    http://whereismycabin.googlepages.com/font_000.png


  7. kuldhir

    9 months ago

    you can use this code
    //Here is a program to save a graphical o/p to bmp
    #include
    #include
    #include
    #include

    int SaveBMP16(char []);
    typedef unsigned char byte;
    typedef unsigned int word;
    typedef unsigned long dword;
    void main()
    {
    /* request auto detection */
    int gdriver;
    int gmode, errorcode;
    detectgraph(&gdriver,&gmode);
    /* initialize graphics and local variables */
    initgraph(&gdriver, &gmode, “c:\\tc\\bgi”);

    errorcode = graphresult();
    if (errorcode != grOk) /* an error occurred */
    exit(1);

    int midx, midy,radius = 100;

    midx = getmaxx() / 2;
    midy = getmaxy() / 2;

    setcolor(getmaxcolor());

    /* draw the circle */
    circle(midx, midy, radius);

    /* clean up */
    SaveBMP16(”Circle.Bmp”);
    }

    struct BMP
    {

    // BitMap File Header
    byte bfType[2]; /* 1 2 must always be set to ‘BM’ to declare that this is a .bmp file.*/
    dword bfSize; /* 3 4 specifies the size of the file in bytes.*/
    word bfReserved1;// 7 2 must always set to zero. */
    word bfReserved2;// 9 2 must always be set to zero.
    dword bfOffset; // 11 4 specifies the offset from the beginning of the file to bitmap data.

    // BitMap Image Header
    dword biSize; // 15 4 specifies the size of the BitMap Header structure, in bytes.
    dword biWidth; // 19 4 specifies the width of image, in pixels.
    dword biHeight; // 23 4 specifies the height of image, in pixels.
    word biPlanes; // 27 2 specifies the number of planes of the target device,must be set to 0
    word biBitCount; // 29 2 specifies the number of bits per pixel.
    dword biCompression; //31 4 Specifies the type of compression, usually set to 0 – No Compres
    dword biSizeImage; // 35 4 specifies the size of the image data, in bytes. If there is no compression, it is valid to set this member to zero.
    dword biXPelsPerMeter; //39 4 specifies the the horizontal pixels per meter on the designated targer device, usually set to zero.
    dword biYPelsPerMeter; // 43 4 specifies the the vertical pixels per meter on the designated targer device, usually set to zero
    dword biClrUsed; // 47 4 specifies the number of colors used in bitmap, if set to 0 number of colors is calculated using the biBitCount member.
    dword biClrImportant; // 51 4 specifies the number of color that are ‘important’ for the bitmap, if set to zero, all colors are important.
    };

    int SaveBMP16(char file[])
    {
    int i=0, j=0, r, g, b;

    FILE *fp;
    BMP *bmp;

    bmp=(BMP *)malloc(54);

    bmp->bfType[0]=’B';
    bmp->bfType[1]=’M';
    bmp->bfSize=153718;
    bmp->bfReserved1=0;
    bmp->bfReserved2=0;
    bmp->bfOffset=118;
    bmp->biSize=40;
    bmp->biWidth=640;
    bmp->biHeight=480;
    bmp->biPlanes=1;
    bmp->biBitCount=4;
    bmp->biCompression=0;
    bmp->biSizeImage=153600; //Fixed Size ?
    bmp->biXPelsPerMeter=0;
    bmp->biYPelsPerMeter=0;
    bmp->biClrUsed=0;
    bmp->biClrImportant=0;

    fp=fopen(file, “wb”);
    if(fp == NULL)
    {
    printf(”File can’t be open”);
    getch();
    return 1;
    }

    fwrite(bmp, 54, 1, fp);
    fseek(fp, 54L, SEEK_SET);

    // Upto Here its OK.

    // Question 1. What do next 16×4 Lines do ?

    fputc(0×0, fp);
    fputc(0×0, fp);
    fputc(0×0, fp);
    fputc(0×0, fp);

    fputc(127, fp);
    fputc(0×0, fp);
    fputc(0×0, fp);
    fputc(0×0, fp);

    fputc(0×0, fp);
    fputc(127, fp);
    fputc(0×0, fp);
    fputc(0×0, fp);

    fputc(127, fp);
    fputc(127, fp);
    fputc(0×0, fp);
    fputc(0×0, fp);

    fputc(0×0, fp);
    fputc(0×0, fp);
    fputc(127, fp);
    fputc(0×0, fp);

    fputc(127, fp);
    fputc(0×0, fp);
    fputc(127, fp);
    fputc(0×0, fp);

    fputc(0×0, fp);
    fputc(192, fp);
    fputc(192, fp);
    fputc(0×0, fp);

    fputc(192, fp);
    fputc(192, fp);
    fputc(192, fp);
    fputc(0×0, fp);

    fputc(128, fp);
    fputc(128, fp);
    fputc(128, fp);
    fputc(0×0, fp);

    fputc(255, fp);
    fputc(0×0, fp);
    fputc(0×0, fp);
    fputc(0×0, fp);

    fputc(0×0, fp);
    fputc(255, fp);
    fputc(0×0, fp);
    fputc(0×0, fp);

    fputc(255, fp);
    fputc(255, fp);
    fputc(0×0, fp);
    fputc(0×0, fp);

    fputc(0×0, fp);
    fputc(0×0, fp);
    fputc(255, fp);
    fputc(0×0, fp);

    fputc(255, fp);
    fputc(0×0, fp);
    fputc(255, fp);
    fputc(0×0, fp);

    fputc(0×0, fp);
    fputc(255, fp);
    fputc(255, fp);
    fputc(0×0, fp);

    fputc(255, fp);
    fputc(255, fp);
    fputc(255, fp);
    fputc(0×0, fp);

    i=0;
    j=479;

    fseek(fp, 118, SEEK_SET);

    while(j>=0)
    {
    i=0;
    while(i<640)
    {
    fputc((getpixel(i, j)<<4) | getpixel(i+1, j), fp); //Que 2. What does this do ? Why Left Shift 4 times and why Bit wise ORing of two pixles.
    i+=2;
    }
    j–;
    }
    free(bmp);
    fclose(fp);
    return 0;
    }


  8. admin

    9 months ago

    @kuldhir

    Thanks for the code..I will try it..Will be useful for others too.Hope it works…


  9. Sivasakthi

    8 months ago

    Thanks


  10. admin

    8 months ago

    Welcome!


  11. Varun

    5 months ago

    Its giving me error saying BGI error graphics cannot be initailized.bgi error

    although the program works gr8 in the compiler i am doing the same thing as u are doing…


  12. masoud

    2 months ago

    thank uuuuuuu so much it was realy nice


  13. amrit pal

    1 month ago

    thanx,it really works
    thnx again


  14. Student

    3 weeks ago

    thanks dear for help


  15. neha

    3 weeks ago

    i am having an error

    bgi error graphics not initialized use ‘initgraph’

    plz help


  16. Nadeem

    3 weeks ago

    hey i tried it but it is showing an error as BGI error….what do i do ????? plz give me a solution to it

Leave a Reply