Creating a new Visual C++ 6.0 project

    The Microsoft C++ compiler, like most integrated development environments, combines source files into a project.  Also it combines projects into a "workspace".   The projects are a collection of source code and other resources, such as icons, menus, and other widgets.
    When writing programs, you will in many cases find it convenient to use an existing workspace/project to create a new application.    Often, of course, you don't want to do this (for instance, if you don't want to overwrite your existing project) and then you will want to create a new project. 

    This page describes briefly the steps needed to make a new C/C++ project that uses the aux or glut OpenGL library routines.  The same steps are used, in fact, for any program which has a main() program as its entry point.  We will describe the simplest possible way to do this.   For more information consult the online documentation provided with the Microsoft C++ compiler.

Step 1: Have the Visual C++ compiler running and as the active window.   If you have a workspace currently open, close it from the the File menu. 
    Then under the File menu, choose New....   A dialog box opens: choose the Projects tab.  Select Win32 Console Application as the project type.  Choose a project name (something informative, but not too long), and a directory for a location (the C++ compiler will automatically create a folder whose name is the same as the project).  Keep Create new workspace and Win32 selected.  Press OK.
In the next box, select either Empty Application, Simple Application or Hello-World Application.  (Empty Application is almost always best.)

Step 2:  You may start creating new .c, .cpp, and .h files in the usual way (use New from the File menu).  Once a source file is created, you must add it to the project.   You do this by selecting the Project menu, then Add to Project, then Files....
   Alternately, instead of creating a new file via the File menu and later adding it to the project, you may create a new file that is already in the project by using the Project menu, then Add to Project, then New....
    [There are various other, shortcut methods of adding a file to a project:  you may try to compile it and it will prompt you to put it in the project.   Or you may try right-clicking on the source file window.]

Step 2': Instead of creating a completely new source file, you may wish modify an existing source file for your new project.  (For instance, another OpenGL program, that you want to modify).  To do this, first create a copy of the source file and put it in your new project directory.   Then select the the Project menu, then Add to Project, then Files... to add it to the project.  Don't forget to use the same procedure for header files.
    If you skip the step of making a new copy of the file before adding it to your project, then you will have the same source file in two different projects.   If you modify the file for one project, it will also change the other project and in most cases, this is not what you want!

    Use the method of Step 2' to add additional source files to your workspace as needed.    The C++ compiler has a "Workspace" window on the left side of the screen.  Switch to the FileView mode in this window to have convenient access to the different files in your project.

Step 3: Compile your program using the Build menu or the shortcut key F7.  Run your program, with from the Build menu, or with the shortcut key F5.

Using I/O (stdin/stdout):  If you run your program it will open a text window (in addition to any OpenGL window).  The standard C I/O routines, such as printf, may be used to read and write from the window, via stdin and stdout.  If you want to do this, don't forget to include the necessary C header files.

Potential problems:

1. If you set your project up the wrong way, you may get compile-time errors about the use of precompiled headers.  If this happen, use the Project menu, go to Settings..., then choose the C/C++ tab, select Category Precompiled Headers and turn off precompiled headers.

2. If you are using the newer Visual C++ Studio.NET, similar procedures apply.  Make sure you choose a Win32 Console Application, and at the end, find the option that lets you start with an empty project.

3. If you are using old versions of the GLUT header file, you need to tell the compiler (or to be precise, the linker) to include the OpenGL libraries.    If you do not do this, then you will get lots of error messages about unresolved external references.  This is done by selecting the Project menu, then Settings..., and then in the dialog box, Link.  This shows a dialog box with a editable field Object/Library modules.  Add to the end of the contents of this field, the following three OpenGL library names:

opengl32.lib glu32.lib glut32.lib

If you would rather not do this, you can also use the #pragma command to tell the compiler which libraries to use: the newer versions of glut32.h use the pragma commands, and this is why you may be able to skip this step.  (If you are using the OpenGL aux libraries, then you need to add glaux.lib to the list of library names instead of glut32.lib.)