Windows API is a set of APIs (application programming interfaces) available in the Microsoft Windows operating systems. A software development kit (SDK) is available for Windows, which provides documentation and tools to enable developers to create software using the Windows API and associated Windows technologies.
History
The Windows API was originally designed to be object oriented, but computers at the time were limited in power and many new APIs and enhancements have been introduced, leading to the loss of some object-oriented aspects. In some ways it is a low-level interface, so many programmers prefer to use the MFC (Microsoft Foundation Classes) and other class libraries such as Borland's OWL (Object Windows Library) for a more high-level approach. The recently introduced .NET libraries, commonly described as a replacement for calling the Windows API, are a wrapper around the Win32 API to provide object-oriented functionality and operating system abstraction.
Among other things, the Windows API contains the graphical widget toolkit used in Windows.
Other common API functions are:
Versions
Win16 was the first, 16-bit version of these APIs.
Win32 is the 32-bit API for modern versions of Microsoft Windows. The API consists of C functions implemented in dynamically linked libraries (DLLs), mainly in core DLLs: kernel32.dll , user32.dll and gdi32.dll . Although Microsoft's implementation of the Windows API is copyrighted, it is generally accepted that other vendors can emulate Windows by providing an identical API, without breaching copyright.
Win64 is the 64-bit extension of Win32.
WinFX is the upcoming next version of the Windows API, based around the new technologies to be introduced in the next version of Windows, codenamed Longhorn. The graphical widget toolkit for WinFX is called Avalon and requires modern graphic cards with hardware support for rendering.
The Wine project is an attempt to provide this API set for UNIX-like platforms.
Compiler support
To develop software for the Windows API, a compiler that can handle the Microsoft-specific DLLs and COM-objects is needed, along with a number of so-called header files which define the interfaces of the DLLs. Collectively, these prerequisites (compilers, tools, libraries, and headers) are known as the Windows Platform SDK. For a long time the proprietary Microsoft Visual Studio family of compilers and tools and Borland's compilers were the only tools that could provide this (although at least in the case of Windows, the SDK itself is downloadable for free separately from the entire IDE suite, from Microsoft Platform SDK Update). Nowadays the MinGW and Cygwin projects also provide such an environment based on the GNU Compiler Collection. LCC-Win32 is a "free for non-commercial use" C compiler maintained by Jacob Navia (a comp.lang.c regular).
See also
External links