Upgrading Existing C++ Projects to 64-bit Windows
Existing BCC32-based projects must be updated to compile correctly with BCC64, or to use the same codebase with both platforms simultaneously. In addition to these project- and tool-related differences, note that BCC64 is also a stricter compiler.
Object and Library File Format
- BCC32 and its associated tools use OMF in
- BCC64 uses ELF in
Where possible, you should remove object and library file extensions, so that each tool can use the appropriate extension. When necessary, as in custom scripts, change the extension make it conditional with version detection.
If the files named in
#pragma link statements contain a file extension, those extensions must be removed. Each compiler will append the appropriate extension.
For example, Control Panel apps that use this statement:
#pragma link "Ctlpanel.obj"
must be updated to read:
#pragma link "Ctlpanel"
For more information, see #pragma link.
For libraries, it is best to use
#pragma comment(lib ..), as in:
#pragma comment(lib, "library-name") // Looks for library-name.lib in WIN32 and library-name.a in WIN64
Applications that use the Windows API must explicitly contain:
With BCC32, including windows.h is not required, but BCC64 requires windows.h and is more strict about #includes.
For more information, see #include.
The NO_STRICT type checking scheme is not supported in BCC64. If you have existing projects that use it, it should be removed.
For more information, see C++ Applications Use STRICT Type Checking.