ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
8 июля
230378 Топик полностью
Ксения (23.12.2010 12:55, просмотров: 87) ответил Evgeny_CD на Интетесно, могу ли я в один EXE собрать код, написанный на C и C++?
Принципиальных затруднений быть не должно: ведь уже давным давно (с появлением линкера) разные функции/подпрограммы можно писать на разных языках. Тогда проект программы состоит из разных текстовых файлов, каждый из которых написан на своем языке. Например: unit1.asm + unit2.c + unit3.cpp + unit4.pas + unit5.f + итд. В процессе компиляции каждый из них компилируется своим подходящим для него компилятором до получения объектных модулей, которые затем сшиваются линкером в одно целое. Тут главное, чтобы в отношении структуры объектного модуля и правил передачи параметров все компиляторы придерживались одних и тех же правил. Однако это обычно всегда соблюдается, если все компиляторы выпущены одной компанией-производителем. В отношении мнопоточности задача тривиальна - каждый поток нагружается функцией/подпрограммой, а уж на каком она языке написана - дело десятое. Поэтому моя рекомендация будет такая: писать на разных языках в отдельных текстовых файлах, потом каждый из них компилировать соответствующим компилятором, а в тредах запускать функции, не задумываясь о том, на каком языке они были написаны. Тем не менее, в хидерах вызовы всех функций должны быть правильно оформлены, т.е. им должны быть даны прототипы в соответствии с законами того языка, на котором написана часть управления потоками.