Maximize your applications' NT compatibility
Life was simple before Microsoft released Windows NT. Most users had only 16-bit DOS and Windows applications that ran only on Intel processors. NT supports most 16-bit DOS and Windows applications and runs 32-bit native applications on multiple hardware architectures, such as Intel, Alpha, and MIPS.
In NT environments, application compatibility and support can be confusing. Users waste time and money determining which applications are NT compatible, and they waste time troubleshooting application compatibility problems. Users often ask the following questions about running Win32 applications on NT.
What is a Win32 application?
A Win32 application is a 32-bit application that meets Microsoft's Win32 API
standard. This standard ensures that applications can take advantage of Windows
features such as graphics, window management, memory management, file I/O,
security, networking, and threading. Win32 applications run on one processor or
multiple processors and on multiple hardware architectures.
Why do different versions of the Win32 API exist?
An advantage of developing an application to the Win32 API standard is that
you can deploy the application to any operating system (OS) that adheres to the
standard. To accommodate architectural differences in OSs, subsets (or flavors)
of the Win32 API are necessary. Wherever possible (as the OSs' architectures
allow), each Win32 API flavor shares a common set of APIs. For example, Windows
NT and Windows 95 support multithreaded applications. The Win32 API flavors for
NT and Win95 offer the same functions to create and manage threads. In contrast,
NT supports native multithreading, but Windows 3.1 does not. The Win32 API
subset on Windows 3.1 does not support the Win32 functions for creating and
managing threads.
To help differentiate Win32 API flavors, Microsoft established a naming
convention in which a trailing character follows the name Win32. For example,
Win32s is the Win32 subset for 32-bit applications that run on Windows 3.1. For
more detailed documentation about the different flavors of Win32 for each
platform, see the Help files that Microsoft provides with its development tools.
The Win32 API standard also exists on non-Microsoft OSs. For example,
Digital Equipment provides a Win32 interface for VMS.
What is the portable executable format?
Win32 applications are stored in the portable executable format. No matter
which Win32 API flavor a developer uses to write an application, the application
has this format. For example, Win32s on Windows 3.1 is a subset of Win32 under
Windows NT. Windows 3.1 and NT applications share the portable executable
format, so Win32s programs run natively under NT. This rule does not always apply if the machine running NT is not Intel based.
Which operating systems (OSs) run Win32 applications?
OSs that support Win32 applications include Windows NT 3.1 and later,
Windows 95, Windows Consumer Electronics (Windows CE), Windows 3.1 (using
Win32s), and VMS (using the Affinity program).
Can I run 16-bit DOS and Windows applications on an Alpha Windows NT
system?
NT on all platforms supports 16-bit DOS and Windows 3.1 applications
(also known as binary compatibility). Therefore, you can run 16-bit applications
on an Alpha-based NT platform without rebuilding them.
How do developers create Win32 applications for non-Intel platforms?
To create an executable application for a non-Intel platform, you must use a
compiler that supports the creation of applications for the platform. For
example, Microsoft has different versions of Visual C++ for each platform. These
different versions let you use the same source code to target applications for
multiple platforms, such as Intel, Alpha, or a Windows Consumer Electronics (CE)
device running an SH3 processor.
Prev. page  
[1]
2
next page