[Sorry for the highly technical post here] > Can anyone point me to information on using Ada together with C++ on > Windows NT? The reason that I need to know is that someone here has > spread the opinion that Ada and C++ runtimes are incompatible, so one > cannot use Ada with C++ in the same program on NT. I am sure that is > not true, but I cannot find any evidence as I am not (yet) an NT > developer. This question has come up in early planning on a project in > which certain parts (mainly small prototype GUI sections) may be > developed in C++, while other parts (algorithms, data manipulation) will > be written in Ada 95. Plans are for the final full-scale development to > be completely in Ada 95. It is important to understand that it is not a language issue (*), but a specific compiler/system issue. On NT, and for C++ in general, there is no standard object format. Most of the time, you cannot mix objects produced from 2 different C++ compilers, and even if you could, it is unlikely to work because the 2 C++ runtimes probably won't work together. The situation is the same between 2 Ada compilers (*). If you are in a multi-language project, it is in general better to avoid mixing languages in the same executable. It is far better (much less risk, less headaches) to separate the 2 parts, and to use either a C-level interface, and/or some system interprocess communication (pipes, shared memory, messages, etc...). This generally has also a good impact on the application design, since it enforces subsystem boundaries. (Eg: avoiding to have GUI code spreaded all over the place in your code.) So to answer your question: at the language level (Ada 95 and C++) there's nothing that guarantee that it will work, experience indicates that it won't work. Unless of course you can find a particular Ada 95 compiler that was designed with cohabitating with a particular C++ runtime. (*) Note that Ada 95, with Import, Export and Convention pragmas plus the adainit/adafinal implementation advice makes it easier to integrate other languages. I worked on a project where some of the code was compiled with the Sun C++ compiler and the rest with GNAT, we defined a C-level interface between the two parts, and linked with the C++ compiler linker calling adainit/adafinal from the C++ main and things worked fine (Motif, Ada tasking and C threading were there too, and it wasn't an academic example). -- Laurent Guerby <[log in to unmask]>, Team Ada, Linux/GNU addict "Use the Source, Luke. The Source will be with you, always (GPL)."