Графический интерфейс Perl / Tk для приложения C++

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
0
501
5

Ответы 5

Я работающий на библиотека, чтобы сделать это как можно проще, но это все еще альфа-версия.

Вы также можете попробовать глоток. Это инструмент для создания интерфейсов для нескольких языков сценариев из C / C++.

Поскольку Perl будет предоставлять графический интерфейс, я бы встроил код C++ в Perl. Предполагая, что будет значительный объем кода C++, я бы поместил его в библиотеку. Традиционный способ связать эту библиотеку с Perl - создать модуль Perl с использованием XS. В этом помогут Учебник по написанию XSUB и Справочное руководство по языку XS.

Несколько более простым способом может быть использование модуля В соответствии. Раньше я использовал Встроенный :: C, и он работал хорошо, но я никогда не пробовал Встроенный :: CPP (версия C++). Я вижу, у него есть смешанные отзывы.

Последующие годы спустя. Inline :: CPP не поддерживался с 2003 года. В 2011 году я начал работать над ним в качестве со-сопровождающего и внес около 135 патчей с ноября 2011 года по май 2012 года. Сейчас он в гораздо лучшей форме. Список ошибок RT сократился до одного устаревшего пункта списка желаний. А коэффициент успешной установки тестеров CPAN составляет около 90%.

DavidO 24.07.2012 04:16

Если это небольшой проект, вероятно, не стоит тратить много времени на то, чтобы заставить говорить на двух языках. вы можете подумать об использовании более подходящего инструмента. 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.

Другие вопросы по теме