Как бы я перепутал C ++ с VALA - PullRequest
2 голосов
/ 11 января 2012

Мне нужно писать приложения с графическим интерфейсом для кроссплатформенности на C ++, но, поскольку большинство библиотек с графическим интерфейсом для C ++ немного утомительны, и я довольно хорошо знаком с C # /. NET, я обнаружил, что коды Vala с GTK довольно интересны и их легко сравнить.с другими способами. так как бы я перепутал VAlA с C ++.Я имел в виду использование VALA для внешнего интерфейса и остальной части кода в C ++.

Ответы [ 4 ]

9 голосов
/ 11 января 2012
  1. Вы можете вызывать сгенерированный Vala код из C ++, но он прост в C и довольно неудобен в использовании из C ++.
  2. Vala может вызывать только код C, поэтому вам придется обернуть все своиКод C ++ в extern "C" one.
  3. Использование Gtk из C ++ через Gtkmm не сложнее, чем использование его из Vala, и Qt также не сложнее.
  4. Qt - единственная действительно кроссплатформеннаявариант.Теперь Gtk изначально работает на MacOS X, но все еще не так стабильна.И Qt также работает на большинстве платформ для смартфонов, а Gtk - нет.
  5. Vala не так сильно похож на C # и имеет свою долю доводов.

В общем, я бы порекомендовалвместо этого используйте Qt.

1 голос
/ 11 января 2012

Vala компилируется в C, интенсивно используя систему типов GObject. Вы можете использовать это, используя glibmm, который является частью gtkmm из C ++. Но вы также можете просто использовать gtkmm (то есть с GtkBuilder), а затем ...

0 голосов
/ 11 января 2012

Вы можете использовать QT, если он соответствует вашим требованиям. Qt - это кроссплатформенное приложение и инфраструктура пользовательского интерфейса с API для программирования на C ++. http://developer.qt.nokia.com/doc/qt-4.8/gettingstartedqt.html

0 голосов
/ 11 января 2012

Он может не полностью ответить на ваш вопрос, но если вы используете mono для встраивания C # в c ++, вы можете использовать GTK # непосредственно из Windows (и он будет скомпилирован и запущен в Mac и Linux тоже).

Затем вы сможете использовать C # / GTK # для внешнего интерфейса и остальных частей кода в c ++.

...