When Microsoft began designing Windows NT, it is natural, in order to minimize project start-up time, they will use the tools previously written and already tested. With these tools generate executable and OBJ file formats and work is called COFF (Common Object File Format initial letter abbreviation). COFF relative age can be specified in octal domain. COFF itself is a good starting point, but need to be extended to the need for a modern operating system such as Windows 95 and Windows NT. The result is updated (PE file) portable executable file format. It is called "portable" because implemented on all platforms (such as x86, Alpha, MIPS, etc.) WindowsNT use the same executable file format. Of course, there are many different things, such as binary code CPU instructions. Important is the operating system loader and programming tools do not need to completely rewrite any CPU will be able to achieve their goals.
executable file structure principle long ago is still very simple. Compiled programming language to OBJ file, and then OBJ files one by one to connect, plus the resource file is a complete executable file, different language development process are similar. A typical example is the Visual Basic earlier series, note the destination directory during compilation, you will find one OBJ file appears and then disappears.
With the rapid development of technology, coupled with the emergence of advanced technologies such as .NET, still support dOS OBJ files also face the risk of obsolescence.
Microsoft to abandon the existing 32-bit tools and executable file format proved the fact that they want to upgrade and run faster WindowsNT determination. A virtual device driver written in a different Windows 16-bit 32-bit file layout --LE file format --WindowsNT appear to exist long ago. More important than this is the replacement of OBJ files, in WindowsNT C compiler Previously, all the Microsoft compilers use Intel's OMF (Object Module Format) specification. As previously mentioned, Microsoft's Win32 compiler generates COFF OBJ file format. Some Microsoft competitors, such as Borland and Symentec, choose to give up COFF format and adhere to the Intel OMF file format.