Мне нужно сделать проект колледжа с использованием C++, для которого требуется графический интерфейс. Я хочу использовать Perl / Tk для графического интерфейса, но я не уверен, как связать C++ с Perl. Проект требует возможности передавать переменные туда и обратно. Может ли кто-нибудь указать мне на какие-нибудь хорошие учебники / книги для связывания этих двух или какие-либо идеи о том, как мне подойти к проблеме, поскольку мне никогда раньше не приходилось связывать два языка.





Я работающий на библиотека, чтобы сделать это как можно проще, но это все еще альфа-версия.
Вы также можете попробовать глоток. Это инструмент для создания интерфейсов для нескольких языков сценариев из C / C++.
Поскольку Perl будет предоставлять графический интерфейс, я бы встроил код C++ в Perl. Предполагая, что будет значительный объем кода C++, я бы поместил его в библиотеку. Традиционный способ связать эту библиотеку с Perl - создать модуль Perl с использованием XS. В этом помогут Учебник по написанию XSUB и Справочное руководство по языку XS.
Несколько более простым способом может быть использование модуля В соответствии. Раньше я использовал Встроенный :: C, и он работал хорошо, но я никогда не пробовал Встроенный :: CPP (версия C++). Я вижу, у него есть смешанные отзывы.
Если это небольшой проект, вероятно, не стоит тратить много времени на то, чтобы заставить говорить на двух языках. вы можете подумать об использовании более подходящего инструмента. C# будет разговаривать с C++ гораздо менее болезненно.
Если бы я занимался этой проблемой, я бы использовал TCL / TK для создания графического интерфейса, а затем построил бы расширение TCL на C / C++, которое можно было бы вызвать из TCL / TK. Это одна из тех вещей, в которых TCL / TK действительно хорош (другие динамические языки тоже могут это делать, но мне нравятся TCL / TK). Вы создаете общую библиотеку (.so в Unix или .dll в Windows) с битами C++, и они импортируются как команды в TCL при загрузке библиотеки.
Swig, о котором уже упоминалось, - это инструмент, который помогает автоматизировать процесс упаковки, он может взять ваш код C++ и создать оболочку, которая позволяет загружать его в языки с числами, такие как TCL, Perl, Python, Ruby ...
Начните с http://www.tcl.tk/ для получения дополнительной информации о TCL и TK.
Последующие годы спустя. Inline :: CPP не поддерживался с 2003 года. В 2011 году я начал работать над ним в качестве со-сопровождающего и внес около 135 патчей с ноября 2011 года по май 2012 года. Сейчас он в гораздо лучшей форме. Список ошибок RT сократился до одного устаревшего пункта списка желаний. А коэффициент успешной установки тестеров CPAN составляет около 90%.