Make Your Application 32-bit

[This is preliminary documentation and subject to change.]

Requirement   (Designed for Microsoft® Windows® Logo)

Your application must be a Win32® application programming interface executable file compiled with a 32-bit compiler that generates an executable file of the PE (Portable Executable) format ("[PE_Win32]" as reported by the Exedump program in the Platform SDK). This means that all the major program files (DLLs and EXEs) must be 32-bit (see Exceptions below).

Exceptions

Fully 32-bit code allows applications to ship a single binary that works on Windows 95, Windows 98, and Windows NT. Otherwise, it may be necessary to ship different binaries for different operating systems. On Windows NT, for example, thunks allow applications to call from 16-bit to 32-bit code, but calling from 32-bit to 16-bit code is not supported. On Windows 95, thunks allow applications to call in both directions. As a result, for Windows NT you may need to ship 32-bit code to replace 16-bit code that works on Windows 95.

Applications executed by a run-time engine
If your application is executed by a run-time engine (interpreted code, for example), then it need not be represented in PE format. However, the run-time engine that executes it must be a Win32-based executable file in the PE format. For example, if you develop an application in Microsoft® Access, your application is an .mdb file, not an .exe, but Access.exe must be a Win32-based executable file in the PE format.
Conditions for inclusion of small amounts of 16-bit code
Under the following circumstances, certain 16-bit code elements can be included in your product:
Special Case: Utilities
Certain components of utilities can be 16-bit, such as those that must use the Exclusive Volume Locking function, soft interrupts, or components that must communicate directly to 16-bit drivers. The user interface and other components of these applications must be 32-bit and use the Windows 95 thunking mechanism to access these 16-bit components.