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: