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.
Pranav says
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!
sindhu says
thanks a lot for the tutorial 🙂 that was very informative, been looking for this.
Eltanin says
Thank you mahesh, I’ve been looking for such lib for days 😉
Guy Incognito says
Life saver! Thanks!
Max says
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 says
Thanks mahesh! Your tips were very useful!
wasif says
yahoooooooooo!!!!!!!
i don it thanks 4 this lib i have fun with it….
MathPlayer says
I have problems in understanding the mouse handler functions. Can anyone help me?
Alex says
#include
void main()
{
cout << "Thanks a ton";
}
minhtoan says
thanks you
Masoud says
tnx a lot . Mer15+15
MOSTAFA says
It was execllentttttttttttttttttt………………
tanks a lottt…………… :-*
ct says
Thank you sooo much!!!!!!
Gherbi Haroun says
thenk you to this demonstration