C GUI, с основой C ++? - PullRequest
       19

C GUI, с основой C ++?

1 голос
/ 10 мая 2009

У меня есть простое (а также тривиальное) банковское приложение, которое я написал на C ++. Я на Ubuntu, поэтому я использую GNOME (GTK +). Мне было интересно, смогу ли я написать весь свой графический интерфейс на C / GTK +, а затем как-нибудь связать его с моим C ++ кодом. Это вообще возможно?

Примечание: Я не хочу использовать Qt или GTKmm, поэтому не предлагайте их в качестве ответов.

Ответы [ 5 ]

5 голосов
/ 10 мая 2009

Да, это очень легко сделать. Все, что вам нужно сделать, это представить некоторые функции C ++ как "extern C", чтобы их могли вызывать обработчики событий и обратные вызовы в вашем коде пользовательского интерфейса.

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

1 голос
/ 10 мая 2009

Я не понимаю, почему нет, при соответствующем extern "C" использовании, чтобы ваш код на C мог вызывать C ++. Теперь, конечно, вы, вероятно, делаете это немного сложнее для себя, но это теоретически обоснованно.

0 голосов
/ 16 ноября 2012

Вы можете просто скомпилировать свой код GTK / C как C ++, не используя GTKmm, и использовать код C ++ изначально.

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

0 голосов
/ 11 мая 2009

Как насчет использования wxWidgets вместо?

0 голосов
/ 11 мая 2009

Как и другие, вы можете написать обертку C для вашей библиотеки C ++. Но вы также можете написать интерфейс на C ++, даже если вы используете только подмножество C. Я могу понять, если вам не нравится смешивание языков, но это самый простой способ, потому что вы экономите время на написание оболочки.

...