Next: Windows Calling Conventions, Previous: Temporary Files, Up: Microsoft Windows Topics
Developing pure Ada applications on Windows is no different than on other GNAT-supported platforms. However, when developing or porting an application that contains a mix of Ada and C/C++, the choice of your Windows C/C++ development environment conditions your overall interoperability strategy.
If you use gcc to compile the non-Ada part of your application, there are no Windows-specific restrictions that affect the overall interoperability with your Ada code. If you plan to use Microsoft tools (e.g. Microsoft Visual C/C++), you should be aware of the following limitations:
.tls section (Thread Local
Storage section) since the GNAT linker does not yet support this section.
msvcrt.dll. This is because the GNAT run time
uses the services of msvcrt.dll for its I/Os. Use of other I/O
libraries can cause a conflict with msvcrt.dll services. For
instance Visual C++ I/O stream routines conflict with those in
msvcrt.dll.
If you do want to use the Microsoft tools for your non-Ada code and hit one of the above limitations, you have two choices: