I have done a fair bit of interoperable program and data between C++ and Ada95 with GNAT under Solaris, AIX and Linux and OCS PowerAda on AIX. In all these cases, the vendors provided examples that were sufficient to get started. (Start by looking for any documentation on an "Application Binary Interface" among the compiler documentation you have - it may help you with some of the following issues). The most common issues are naming (source files, objects and internal representation of functions / procedures). Exportation of Ada names generally requires putting them in the "C" style and declaring them as externs within C++ as C names, so that the name mangling issues will all resolve correctly. Generally a C++ main has been required, with the C++ linker (when the linkers differ), and some tricks are often pulled to do a transitive closure on all the required Ada names and make them available to the linker. The GNAT documentation has a nice little example that shows C++ calling Ada calling C++. But on XP and with FORTRAN, well, I dunno... -- Karl --