Dev C%2b%2b Directx Example
What is Dev-C++?
Dev-C++, developed by Bloodshed Software, is a fully featured graphical IDE (Integrated Development Environment), which is able to create Windows or console-based C/C++ programs using the MinGW compiler system. MinGW (Minimalist GNU* for Windows) uses GCC (the GNU g++ compiler collection), which is essentially the same compiler system that is in Cygwin (the unix environment program for Windows) and most versions of Linux. There are, however, differences between Cygwin and MinGW; link to Differences between Cygwin and MinGW for more information.
Welcome to the fourth and last part of the 'Developing a GUI in C And DirectX' Article. Continuing with the overall theme (showing how I implemented a GUI for my upcoming game, Quaternion), this article will address a whole bunch of miscellaneous issues and ideas to polish off your game GUI. As a further example, you might want to use the DirectX “object model” to make your way to the DXGI factory: auto device = Direct3D::CreateDevice; auto dxdevice = device.AsDxgi; auto adapter = dxdevice.GetAdapter; auto factory = adapter.GetParent. Firstly, the directories must be set up so that Visual C/C can find the DirectX include files and libraries: Access the Tools/Options/Directories tabbed dialog. Select “library directories” from the drop-down list, and add the directory of the DX SDK libraries, e.g. Select “include directories” from the drop-down list, and add the directory of the DX SDK header files, e.g. All of the example programs used with these tutorials were compiled using the free Dev-C compiler which is covered in the second tutorial. If you are new to Win32 API programming then I suggest you download a copy of the Win32 Reference Manual and this help file viewer before going on to the first tutorial on how to make a Basic Window. For UWP on Xbox One, DirectX12 is supported as Direct3D Hardware Feature Level 12.0 while in Game mode. Note that in development mode, if you try to create a DirectX 12 device while not in Game mode, you will end up with a WARP software device rather than the much faster hardware device. Programming with the Dev C IDE 1 Introduction to the IDE Dev-C is a full-featured Integrated Development Environment (IDE) for the C/C programming language. As similar IDEs, it offers to the programmer a simple and unified tool to edit, compile, link, and debug programs. It also provides support for the management of the. Plain Windows GCC (MinGW) does not include anything of DirectX 10/11, but supports a limited part of DirectX 9 out of the box (for example, D3DX is not included). The TDM-GCC 4.6.1 builds of Orwell Dev-C include DirectX 9/10/11 headers and libraries.
Bloodshed!?
I'll be the first to say that the name Bloodshed won't give you warm and fuzzies, but I think it's best if the creator of Bloodshed explains:
There's also a reason why I keep the Bloodshed name. I don't want people to think Bloodshed is a company, because it isn't. I'm just doing this to help people.
Here is a good remark on the Bloodshed name I received from JohnS:
I assumed that this was a reference to the time and effort it requires of you to make these nice software programs, a la 'Blood, Sweat and Tears'.
Peace and freedom,
Colin Laplace
Getting Dev-C++
The author has released Dev-C++ as free software (under GPL) but also offers a CD for purchase which can contain all Bloodshed software (it's customizable), including Dev-C++ with all updates/patches.
Link to Bloodshed Dev-C++ for a list of Dev-C++ download sites.
You should let the installer put Dev-C++ in the default directory of C:Dev-Cpp, as it will make it easier to later install add-ons or upgrades.
Using Dev-C++
This section is probably why you are here.
All programming done for CSCI-2025 will require separate compilation projects (i.e. class header file(s), class implementation file(s) and a main/application/client/driver file). This process is relatively easy as long as you know what Dev-C++ requires to do this. In this page you will be given instructions using the Project menu choice. In another handout you will be given instructions on how to manually compile, link and execute C++ files at the command prompt of a command window. See here.
Step 1: Configure Dev-C++.
We need to modify one of the default settings to allow you to use the debugger with your programs.
- Go to the 'Tools' menu and select 'Compiler Options'.
- In the 'Settings' tab, click on 'Linker' in the left panel, and change 'Generate debugging information' to 'Yes':
- Click 'OK'.
Step 2: Create a new project.
A 'project' can be considered as a container that is used to store all the elements that are required to compile a program.
- Go to the 'File' menu and select 'New', 'Project...'.
- Choose 'Empty Project' and make sure 'C++ project' is selected.
Here you will also give your project a name. You can give your project any valid filename, but keep in mind that the name of your project will also be the name of your final executable. - Once you have entered a name for your project, click 'OK'.
- Dev-C++ will now ask you where to save your project.
Step 3: Create/add source file(s).
You can add empty source files one of two ways:
- Go to the 'File' menu and select 'New Source File' (or just press CTRL+N) OR
- Go to the 'Project' menu and select 'New File'.
Note that Dev-C++ will not ask for a filename for any new source file until you attempt to:- Compile
- Save the project
- Save the source file
- Exit Dev-C++
- Go to the 'Project' menu and select 'Add to Project' OR
- Right-click on the project name in the left-hand panel and select 'Add to Project'.
EXAMPLE: Multiple source files In this example, more than 3 files are required to compile the program; The 'driver.cpp' file references 'Deque.h' (which requires 'Deque.cpp') and 'Deque.cpp' references 'Queue.h' (which requires 'Queue.cpp'). |
Step 4: Compile.
Once you have entered all of your source code, you are ready to compile.
- Go to the 'Execute' menu and select 'Compile' (or just press CTRL+F9).
It is likely that you will get some kind of compiler or linker error the first time you attempt to compile a project. Syntax errors will be displayed in the 'Compiler' tab at the bottom of the screen. You can double-click on any error to take you to the place in the source code where it occurred. The 'Linker' tab will flash if there are any linker errors. Linker errors are generally the result of syntax errors not allowing one of the files to compile.
Dev C 2b 2b Directx Example Key
' dialog box will have a status of 'Done'. At this point, you may click 'Close'.Step 5: Execute.
You can now run your program.
- Go to the 'Execute' menu, choose 'Run'.
Disappearing windows
If you execute your program (with or without parameters), you may notice something peculiar; a console window will pop up, flash some text and disappear. The problem is that, if directly executed, console program windows close after the program exits. You can solve this problem one of two ways:
- Method 1 - Adding one library call:
On the line before the main's return enter:system('Pause');
- Method 2 - Scaffolding:
Add the following code before any return statement in main() or any exit() or abort() statement (in any function):/* Scaffolding code for testing purposes */
This will give you a chance to view any output before the program terminates and the window closes.
cin.ignore(256, 'n');
cout << 'Press ENTER to continue...'<< endl;
cin.get();
/* End Scaffolding */ - Method 3 - Command-prompt:
Alternatively, instead of using Dev-C++ to invoke your program, you can just open an MS-DOS Prompt, go to the directory where your program was compiled (i.e. where you saved the project) and enter the program name (along with any parameters). The command-prompt window will not close when the program terminates.
For what it's worth, I use the command-line method.
Step 6: Debug.
When things aren't happening the way you planned, a source-level debugger can be a great tool in determining what really is going on. Dev-C++'s basic debugger functions are controlled via the 'Debug' tab at the bottom of the screen; more advanced functions are available in the 'Debug' menu.
Using the debugger:
The various features of the debugger are pretty obvious. Click the 'Run to cursor' icon to run your program and pause at the current source code cursor location; Click 'Next Step' to step through the code; Click 'Add Watch' to monitor variables.
Setting breakpoints is as easy as clicking in the black space next to the line in the source code.
See the Dev-C++ help topic 'Debugging Your Program' for more information.
Dev-C++ User F.A.Q.
Why do I keep getting errors about 'cout', 'cin', and 'endl' being undeclared?
It has to do with namespaces. You need to add the following line after the includes of your implementation (.cpp) files:
How do I use the C++ string class?
Again, it probably has to do with namespaces. First of all, make sure you '#include <string>' (not string.h). Next, make sure you add 'using namespace std;' after your includes.
Example:
That's it for now.I am not a Dev-C++ expert by any means (in fact, I do not teach C++ nor use it on a regular basis), but if you have any questions, feel free to email me at jaime@cs.uno.edu
Happy coding!
Win32 API Tutorials
Before diving into the first tutorial the following might help explain why we prefer to create our Windows applications using the Win32 API.
Through writing an application using straight Win32 you will gain a better understanding of how the API works, reduce bloat and have more control over the appearance and behavior of your applications. You will be interacting with the windows operating system at the lowest level possible and gain access to features not available when using Microsoft Foundation Classes (MFC) or a visual compiler.
To give an example I would like you to think back to when you last saw a multicolored window, one that didn't use the current theme colors. Most likely you have rarely seen one; the reason for this is that there are no simple functions to set the colors of a window or its controls. This is a blatant attempt by Microsoft to make all applications conform to a standard appearance. By failing to provide an easy way to set the colors of a window and its controls Microsoft can be somewhat assured that few anarchistic looking applications will be produced. To overcome this limitation and many others we will need to know the Win32 API in depth; then we can create a better way to design and manage our windows through the use of owner-drawn controls and object orientated programming, which are covered later in the tutorials.
In this series of tutorials I will start by showing you how to create a standard single window application and progress through to encapsulating the main window and other controls in C++ classes.
All of the example programs used with these tutorials were compiled using the free Dev-C++ compiler which is covered in the second tutorial.
If you are new to Win32 API programming then I suggest you download a copy of the Win32 Reference Manual and this help file viewer before going on to the first tutorial on how to make a Basic Window.
For further help you could also go to #winprog on Efnet IRC where you can ask questions and talk about anything to do with the Win32 API.
Creating a Window
Dev-C++
Adding Controls
Resources
Splash Screen Tutorial (bitmap resource)
Dialogs Tutorial (template resource)
OpenGL
Buttons
Standard Buttons
Checkbox Buttons
Radio Buttons
Auto Radio Buttons
Color Buttons
Group Boxes
Standard Group Box
Static Controls
Static Text Control
Menus
Adding a Class Menu
Edit Boxes
Standard Edit Box
List Boxes
Standard List Box
Combo Boxes
Standard Combo Box
Dialog Boxes
Modeless Dialog Box
Status Bar
Status Bar
Scroll Bars
Scroll Bar Controls
Tool Bars
Toolbars
Tool Tips
Tooltips
Timers
Timers
Progress Bar
Progress Bars
Multiple Document Interface
MDI Application
Console Debug Window
Dialog Main Window
Object Orientated Win32
Dev C 2b 2b Directx Example Java
Win32 Reference Section