SDK Used to Build Windows 3.11 Software
During the era of Microsoft Windows 3.11, developers primarily used the Microsoft Windows Software Development Kit (SDK) version 3.1 alongside 16-bit development suites like Microsoft Visual C++ 1.5. Because Windows 3.11 was an update focused on networking rather than an architectural redesign of the core API, it shared the underlying development ecosystem of Windows 3.1. This article outlines the primary SDKs, integrated compilers, and runtime extensions programmers relied on to build software for the platform.
The Microsoft Windows 3.1 SDK
The official and most widespread toolkit was the Microsoft Windows Software Development Kit version 3.1. Microsoft did not release a distinct "Windows 3.11 SDK" for standard user-mode applications. Instead, the 3.1 SDK provided all the essential components necessary to write 16-bit Windows programs:
- Header Files and Libraries: Core files such as
windows.hdefined the Windows API functions, data types, messages, and structures. Import libraries allowed programs to dynamically link to core system DLLs, includingUSER.EXE,GDI.EXE, andKRNL386.EXE. - Resource Compiler (
RC.EXE): A command-line utility used to compile resource definition files (.RC) containing menus, dialog boxes, icons, strings, and bitmaps into binary resource files linked directly into executable files (.EXEor.DLL). - Debugging Tools and Documentation: The SDK provided specialized debug kernels, the CodeView debugger, memory profiling utilities (like Heap Walker), and comprehensive printed and digital API references.
Integrated Development Environments and Compilers
Although the SDK supplied the foundational API headers and build utilities, programmers needed a compatible 16-bit compiler to generate code.
- Microsoft Visual C++ 1.0 and 1.5: Microsoft eventually bundled the Windows SDK components directly into its flagship development environments. Visual C++ 1.5 (and later update 1.52c) became the definitive IDE and compiler for Windows 3.11 development, providing the Microsoft Foundation Class (MFC) 2.5 library to simplify GUI creation.
- Microsoft C/C++ 7.0: Preceding Visual C++, this compiler was commonly used in conjunction with the standalone Windows 3.1 SDK to target protected-mode Windows.
- Borland C++: Borland was Microsoft's major competitor during this era. Borland C++ (versions 3.1 through 4.5) included its own equivalent Windows headers, resource tools, and the Object Windows Library (OWL) framework.
The Win32s SDK Extension
As the industry began preparing for the transition to 32-bit computing with Windows NT and Windows 95, Microsoft introduced the Win32s SDK.
Win32s was an add-on runtime library that could be installed onto Windows 3.11. By using the Win32s SDK, programmers could write 32-bit applications targeting a subset of the Win32 API. When executed on Windows 3.11, the Win32s subsystem translated 32-bit system calls into the underlying 16-bit calls, allowing software to maintain forward compatibility with modern operating systems while still supporting existing Windows 3.11 machines.
Device Driver Development
For programmers writing hardware drivers rather than standard applications, Microsoft supplied the Windows 3.1 Device Driver Kit (DDK). This kit contained the tools, assembly code definitions, and specifications needed to develop 16-bit real-mode drivers as well as 32-bit virtual device drivers (VxDs) that took advantage of the 386 Enhanced Mode architecture of Windows 3.11.