Dev-C++ & Graphics

Creating 2D graphics programs under DOS is easy if you’re using [turbo c]. There is library file called graphics.h that does the tiresome work for you. But unfortunately this library is borland specific you can’t use it on other compilers.

Even though some peoples somehow managed to port it outside the turbo. Some people hacked their own version of graphics.h. One such person is Micheal main, he ported some of borland graphics functions and library.

Micheal main modified BGI library for windows application to be used under MinGW. This BGI library is renamed as WinBGIm. Now you can use all the borland specific functions under Dev-C++.

Installation 

In order to run graphics programs under Dev-C++ you have to download WinBGIm files. Download the files listed below.

  • Graphics.h (download to C:\Dev-Cpp\include)
  • libbgi.a(download to C:\Dev-Cpp\lib)

Once you download the files. Now you have to place into the correct location in Dev-C++ installation folder. Try to locate include and lib folder under your dev-cpp installation. Move these files under the respective folder of include and lib. like e.g. D:\Dev-cpp\ include & D:\Dev-cpp\lib .

Configuration
At last step you’ve downloaded & installed the WinBGIm, now you have to configure it to use under Dev-C++. You’ve to set some project options in Dev-C++ in order to run WinBGIm references properly.
Follow the steps below to set proper project options for WinBGIm.

1. Go to the “File” menu and select “New”, “Project”,Choose “Empty Project” and make sure “C++ project” is selected. Give your project suitable name and click on “Ok”.

OR

1. You can create individual C++” source file” instead of “project”. Go to the “File” menu and select “New Source File” OR Go to the “Project” menu and select “New File”.

2. Go to “Project” menu and choose “Project Options”.
3. Go to the “Parameters” tab.
4. In the “Linker” field, enter the following text:

  • -lbgi
  • -lgdi32
  • -lcomdlg32
  • -luuid
  • -loleaut32
  • -lole32

5.Click “Ok” to save settings.
Now you’ve done with the configuration for WinBGIm. Please make sure you’ve done this step properly otherwise compiler will flag error.

Testing & Debugging

Now let’s write a small program to test how WinBGIm works. Here is the source code for the program. Type it down,save it with .cpp extension and compile and run to see the results.

#include <graphics.h>

#include <iostream>

using namespace std;

int main()
{
initwindow(800,600);
circle(200,300,600);
while(!kbhit());
closegraph();
return 0;
}

This is the program for displaying circle with respective parameters on window of size 800×600.This window will close when you press any key.If you’ve made settings correctly then you can view the graphics,without any problem.

What’s included ?
All the borland graphics batteries included, plus some additional written by other contributors of WinBGIm. With WinBGIm you can use most of the borlands graphics function & RGB colors. You can also use detectgraph() and initgraph() or you can use new function called initwindow().  You can even use some of the old mouse function such as int mousex() & int mousey() along with getmouseclick() & clearmouseclick(). For keyboard functions,you don’t have to include conio.h some of the functions are supported without it like void delay(int millisec),int getch( ),int kbhit( ).

If you want to capture the screen where you’ve created your graphics. You can do it with help of these functions getimage(),imagesize(), printimage(), putimage(), readimagefile() ,writeimagefile().

Help & Support
If you’re into some trouble with installation & configuration,then please post your questions here. But please don’t post homework problems or your custom projects.Google groups is the right place to get answers in such cases. You can even get lot of support with WinBGIm and Dev-C++ at Google groups. If you want to read about the WinBGIm documentation & FAQ.

If you’ve any question or suggestion then don’t hesitate to post it here.If you know any alternative than WinBGIm,please post about it here.

  • http://www.jazzedup.info Pranav

    Thanks a lot for this. I used to use Turbo C++ for graphics. But now, the software is outdated and everyone uses Dev C++. I was looking a graphics solution when I encountered this article. Helped a lot. Thanks!

  • http://sindhu.tumblr.com sindhu

    thanks a lot for the tutorial :) that was very informative, been looking for this.

  • http://pseudose.blogspot.com Eltanin

    Thank you mahesh, I’ve been looking for such lib for days ;)

  • Pingback: WINBGIm Graphics()

  • Guy Incognito

    Life saver! Thanks!

  • Max

    Muchas gracias!!!! me ayudaste mucho con un trabajo importante que tenía en la escuela — Thank you very much!!! You helped me to do an important homework.

  • joisanb

    Thanks mahesh! Your tips were very useful!

  • wasif

    yahoooooooooo!!!!!!!
    i don it thanks 4 this lib i have fun with it….

  • MathPlayer

    I have problems in understanding the mouse handler functions. Can anyone help me?

  • Alex

    #include
    void main()
    {
    cout << "Thanks a ton";
    }

  • minhtoan

    thanks you

  • http://iasbs-it.mihanblog.com Masoud

    tnx a lot . Mer15+15

  • MOSTAFA

    It was execllentttttttttttttttttt………………
    tanks a lottt…………… :-*

  • ct

    Thank you sooo much!!!!!!

  • Gherbi Haroun

    thenk you to this demonstration