Previous Next

Make Your Application 32-bit

[This is preliminary documentation and subject to change.]

Requirement   (Designed for Microsoft® Windows® Logo)

Your application must be a Microsoft® 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 the following Exceptions).

Exceptions

Fully 32-bit code allows applications to ship a single binary that works on Microsoft 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 98, 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 98.

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:
  • Some minor, subsidiary 16-bit executable files and dynamic-link libraries (DLLs) can be used to provide backward compatibility and links to 16-bit products. However, your main program files (including DLLs) must be 32-bit.
  • Other minor, subsidiary 16-bit executable files and DLLs can be used for convenience in a very limited fashion but only if there is no existing 32-bit version of the DLL you need for your application. These files cannot constitute a significant portion of the product.
  • You must fully explain all instances of 16-bit code when you submit your product for testing. This must be done in the electronic Vendor Questionnaire you submit with your application.
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 98 thunking mechanism to access these 16-bit components.