ss_blog_claim=752cdf4fa7cc7b60527b400da1af07d5

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

24 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

, , , , , , , , ,

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


  1. thegands

    1 year ago

    that is awesome!


  2. admin

    1 year ago

    Hope it was useful to you:)


  3. Pallab

    1 year 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

    1 year 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

    1 year 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

    1 year 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

    1 year 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

    1 year ago

    @kuldhir

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


  9. Sivasakthi

    1 year ago

    Thanks


  10. admin

    1 year ago

    Welcome!


  11. Varun

    11 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

    7 months ago

    thank uuuuuuu so much it was realy nice


  13. amrit pal

    7 months ago

    thanx,it really works
    thnx again


  14. Student

    6 months ago

    thanks dear for help


  15. neha

    6 months ago

    i am having an error

    bgi error graphics not initialized use ‘initgraph’

    plz help


  16. Nadeem

    6 months 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


  17. Tushar

    5 months ago

    Hey i m getting problem in thi..
    BGI error is there in Dos BOx..

    Plzzz help me out…


  18. Nishant

    5 months ago

    same bgi error dude… help out xD


  19. Shunmugha

    5 months ago

    Check article @ http://www.daniweb.com/forums/thread76092.html

    May it should help you out..


  20. siddharth

    5 months ago

    showing error
    bgi error : graphic are not installed
    what to do now?


  21. Shunmugha

    5 months ago

    First check out whether your graphics program is getting complied properly without error..Set all library link properly..Then try these steps..


  22. siddharth

    5 months ago

    yes, i had given all links properly,and my code and exe also run properly. when trying run on dosbox displys bgi error with graphics are now initialised..
    Plz help me out…


  23. pradeep

    4 months ago

    the same bgi error please help…..the pah is alright …the linker setting is also right


  24. Kesav

    1 month ago

    BGI Error ….Method For Correcting It

    In your C Program Type
    initgraph(&gdriver, &gmode, “..\\bgi”);

    Mount z C:\TC

    In z: Type cd bin
    z:\bin is pointing C:\TC\BIN and also Ur ..\\bgi pointing c:\tc\bgi

    Then Run Ur Exe File

Leave a Reply