Perl / Tk GUI для приложения C ++ - PullRequest
5 голосов
/ 17 октября 2008

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

Ответы [ 5 ]

6 голосов
/ 17 октября 2008

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

6 голосов
/ 17 октября 2008

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

5 голосов
/ 17 октября 2008

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

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

1 голос
/ 17 октября 2008

Если бы я занимался этой проблемой, я бы использовал TCL / TK для создания GUI, а затем создавал расширение TCL в C / C ++, которое можно вызывать из TCL / TK. Это одна из тех вещей, в которых TCL / TK действительно хорош (другие динамические языки тоже могут это делать, но мне нравится TCL / TK). Вы создаете общий libray (.so в Unix или .dll в windows) с битами C ++, и они импортируются как команды в TCL при загрузке библиотеки.

Swig, который уже упоминался, - это инструмент, который помогает автоматизировать процесс упаковки, он может взять ваш код C ++ и создать оболочку, которая позволяет загружать его в несколько языков, таких как TCL, Perl, Python, Ruby ...

Начните с http://www.tcl.tk/ для большого количества информации TCL и TK.

0 голосов
/ 17 октября 2008

если это небольшой проект, то, вероятно, не стоит тратить много времени на изучение двух языков. Вы можете рассмотреть возможность использования более подходящего инструмента. C # будет говорить с C ++ намного меньше боли.

...