Windows 3.x software: Programming – Building C++ applications.
If you search for a C++ IDE for Windows 3.x, you will notice the same as with other software: There are lots of applications available for Windows 3.1/3.11, but most of these do not work on Windows 3.0 (and applications specifically built for Windows 3.0 are really rare). I tried several C++ software on my Windows 3.x VMware virtual machine. Here my experiences (so far), starting with applications, that for one reason or another did not work on my system, then describing the installation of Symantec C++ Pro 6.1 on Windows 3.11 and the installation of Borland C++ 3.1 on Windows 3.0
Microsoft Visual C++ 1.50 Pro.
Microsoft Visual C++ 1.50 Pro is available for download on the WinWorld Visual C++ page. Even though it is possible to install and to run it on Windows 3.1 and Windows 3.11, I will not describe it here. The reason is that Microsoft Visual C++ 1.50 Pro is not compatible with the 1024×768 pixels 256 colors SVGA driver, that actually turns Windows 3.1/3.11 into an operating system, you may work comfortably with. I don't know if the installation of the IDE is possible when the driver is installed, because I installed it before installing the driver. Installation succeeded, as well as the built of one of the included samples and the execution of the binary created. The screenshot below shows the IDE on my Windows 3.11 (with standard VGA video driver).
![]() |
In fact, the IDE itself works properly, even if the SVGA driver is installed. The problem occurs when trying to build an application. I suppose that this is related to the known bug of this driver, resulting in an unreadable screen (and no other possibility as to use CTRL+ALT+DEL to reboot) when an MS-DOS application is launched from within a desktop application (in this case, the DOS application being the C++ compiler, launched from within the IDE). The screenshot below shows how this screen might look; to note that it may look completely different, but in all cases there is nothing else displayed than "garbage".
![]() |
Possible that there is a work-around ... I did not search for it, as I found Symantec C++, that fully supports the SVGA driver. To note, that the driver problem is exactly the same with Microsoft FORTRAN PowerStation 4.0, whereas Microsoft Visual Basic 3.0 Professional works well with the SVGA driver.
Watcom C++ 11.0A.
The commercial Watcom C++ IDE has become abandonware and may be downloaded from the WinWorld Watcom C/C++ page. Installation on my Windows 3.11 failed: The setup program of Watcom C++ 11.0A is not compatible with the 1024×768 pixels 256 colors SVGA driver and all I got when launching it, is what you can see on the screenshot below.
![]() |
Open Watcom C++ 2.0.
Open Watcom C++ and Open Watcom FORTRAN are forks of the corresponding abandoned commercial Watcom compilers. They are under active development and exist for several platforms. So, there are 16bit versions for DOS (the most recent C++ compiler for DOS was released in 2017!), that is said to also run on Windows 3.1/3.11. It may be downloaded from the Sourceforge Open Watcom page. As for Watcom C++ 11.0A, installation failed on my Windows 3.11, because the setup program of Open Watcom C++ 2.0 is not compatible with the 1024×768 pixels 256 colors SVGA driver. Launching it results in the same unreadable and unusable screen as shown on the screenshot for Watcom C++ 11.0A.
There might however be a work-around: Installing it on DOS, and, if running it on Windows does not work, also running it on DOS. The compiler can produce executables for different target platforms, so it might be possible to create Windows 3.1 programs this way. Maybe, I'll try out some day...
Using Symantec C++ Pro 6.1 on Windows 3.11.
Symantec C++ Pro 6.1 is a powerful C++ development environment and my recommendation for use on Windows 3.1/3.11. It allows to build applications for DOS and Windows, as well as 32bit applications for Windows 3.1/3.11 with Win32s. And, it fully supports the 1024×768 pixels 256 colors SVGA driver. You can download it from the WinWorld Symantec C++ page.
The download file is an ISO that you can mount in a virtual CD drive, or use as CD drive in your virtualization software. Run install.exe from the CDROM to start setup. In the first window of the setup wizard, you are asked if you want to install all software components to your harddisk, or only to do a partial installation and run the application from CDROM. Except if your disk risks to run out of space, no reason not to fully install to HDD. After a short description of the program, you get the installation type window. As above, no reason not to choose a complete installation.
![]() |
In the next window, you are asked for the installation directory. By default, this is C:\SC (on my multiple boot virtual machine it's F:\SC, as my Windows 3.11 is installed on the F: partition). The next two windows describe the modifications that have to be made to the Windows system files (for details, cf. further down in the text); select the let install make the changes to the file option to automatically modify AUTOEXEC.BAT.
![]() |
The setup program having all information it needs, continues by copying the files from the CDROM to the harddisk. Then, it informs you that two new devices have been added to SYSTEM.INI, and finally tells you what you'll have to do to install Win32s (cf. further down in the text) (screenshot on the left). Installation is complete now; push the Exit to DOS button to terminate (screenshot on the right); do not choose to restart Windows, as this would result in the computer to hang (known bug in the 1024×768 pixels 256 colors SVGA driver).
![]() |
![]() |
Being in DOS, you can edit AUTOEXEC.BAT. I suppose here, that you installed the software to the default install directory. With the path set to the DOS and Windows
directories, you can add the Symantec C++ BIN directory to the path by adding the command:
PATH=C:\SC\BIN;%PATH%
Add new commands to set the compiler related directories environment variables:
SET INCLUDE=C:\SC\INCLUDE;C:\SC\INCLUDE\WIN16;C:\SC\INCLUDE\WIN32;C:\SC\MFC\INCLUDE
SET LIB=C:\SC\LIB;C:\SC\MFC\LIB
SET HELP=C:\SC\HELP
Add a new command to load share.exe:
SHARE.EXE /L:100 /F:4096
You must reboot the computer to make these changes active. There should now be a Symantec C++ group in Program Manager (and in Dashboard, if you use this shell). And it should be possible to start the IDE and build 16bit applications (for both DOS and Windows 3.1/3.11).
Installing Win32s.
Win32s is a 32-bit application runtime environment for the Microsoft Windows 3.1 and 3.11 operating systems; for details, cf. my Running 32bit applications on Windows 3.1 and 3.11 tutorial in the Computer Administration section.
Win32s is included with Symantec C++ Pro 6.1 and its installation may be launched by choosing Win32s setup in the Symantec C++ program group. Installation is straight forward and without user intervention: After the "Welcome" screen (screenshot), you are informed that some files will be copied to the Windows System directory, and after copying is done, you should get the message "Win32s files successfully installed".
![]() |
The install wizard continues with the installation of Freecell, a game application, that you may use to test if 32bit applications work correctly. After this is done, the wizard restarts windows. This will fail, when the 1024×768 pixels 256 colors SVGA driver is installed (I got an entirely black screen). Use CTRL+ALT+DEL to reboot the machine.
It's time now to try out the IDE. Start it from Program Manager (or from Dashboard) and load a C++ project for Windows (e.g. from the samples provided). You should be able to build the project without any problem, as well as to execute the resulting binaries. The screenshots below show the IDE with the project "wclock.prj" opened in he IDE (on the left) and the output of the executable (at the right).
![]() |
![]() |
Now, lets try to build a Windows 32bit application. The screenshot on the left shows the output of the build process of the Windows 32bit sample project "seg32.prj". I don't know what exactly the warning concerning the 16bit resource file means, and I think that it's not important to know: As shows the screenshot on the right, the execution of the binary created was all successful.
![]() |
![]() |
Note: When executing the program you will get a system error, telling you cannot write to device AUX. I did not look up what that message means (I think that I got it with other programs, too) and why this error occurs. Anyway, just push the Cancel button to close the dialog box. The program then continues normally.
But Symantec C++ Pro 6.1 is lots more than a C++ IDE. The installation CDROM includes several other applications, in particular the Visual Programmer for Symantec C++ Pro that lets you visually prototype and build Windows applications written in C++ and MFC. You can build applications on the fly in minutes – without writing a single line of code, and the Symantec Resource Toolkit for creating Windows resources graphically. There is also a Post-mortem debugger to analyze crashing programs.
Using Borland C++ 3.1 on Windows 3.0.
Borland C++ was a commercial C++ IDE that targeted the professional application development market. The version that I tried on my Windows 3.0 VMware virtual machine is Borland C++ 3.1 and Application Frameworks, released in 1992. It may be downloaded from the WinWorld Borland C++ page. The 3.5" 1.44MB floppies version download archive contains 13 diskettes, plus patches. I did install the IDE, without having installed the patches so far...
To start the setup wizard, run install.exe from the first diskette. After the display of the Welcome screen, you have to select the source drive (normally A:), then the installation and Windows directories (install default = C:\BORLANDC; default Windows directory = C:\WINDOWS) and the components to be installed. To modify one of the default settings, select it and hit ENTER. Normally you can immediately select Start installation, as the default settings are ok for most users, with all components and examples being installed (note, that in my case the Windows and installation drive is D: as my Windows 3.0, part of a multiple boot, is installed on that partition).
![]() |
During file copy, insert the diskettes as you are asked for. When done, you are informed about the modifications that have to be made to the Windows system files. CONFIG.SYS should be ok, with probably a higher value set for FILES as needed by Borland C++. Adding the application's directory containing the executables to the path is normally only needed if you want to use the command line tools.
![]() |
After setup is finished, you can edit AUTOEXEC.BAT. Supposing that you installed the software to the default install directory, and the path is set to the DOS and Windows
directories, you can add the path to the BIN folder of Borland C++ by adding the command:
PATH=%PATH%;C:\BORLANDC\BIN
The next time, you start Windows, you are asked if you want to create a program group and icons "for the Borland product you recently installed". And here the important point to know about the installation of Borland C++ 3.1 and Application Frameworks: Do not create a Borland C++ program group, when asked if you want to do so. In fact, Borland C++ 3.1 and Application Frameworks is one of the Windows 3.x applications that when creating a program group, remove all other program groups in Program Manager (and in Dashboard).
![]() |
Please, note that this screenshot has been taken on a French language version of Windows 3.0, and with Dashboard used as shell ("Annuler" being the French word for "Cancel").
I did not configure the IDE, in particular I did not configure the directories. I just did the build of the sample Windows program "hello.cpp". You can start the IDE from within the File Manager. Browse to C:\BORLANDC\BIN and double-click BCW.EXE to start the IDE. Open the file hello.cpp and choose Compile > Build all from the menu bar. Building hello.cpp was successful, except a warning message concerning the module definition file (screen on the left). With no directories configured the object and executable are stored in the current directory, that in this case is C:\BORLANDC\BIN. The screenshot on the right shows the application output.
![]() |
![]() |
Borland C++ 3.1 and Application Frameworks includes several other applications. You can launch them from File Manager, or create a Program group manually. Have a look at my Using the Windows 3.x Program Manager tutorial in the Computer Administration section, if you need help to do so (if you use Dashboard, you can create a program group with this application in a similar way). The screenshot below shows the manually created Dashboard group Borland C++ on my Windows 3.0.
![]() |
If you like this page, please, support me and this website by signing my guestbook.