Как подключить код C ++ к приложению? - PullRequest
2 голосов
/ 27 июня 2010

Предположим, у меня есть какая-то функция, скажем, в C ++

int f() {
    // do some stuff
}

Как мне подключить его к кнопке в каком-нибудь приложении? Оно не обязательно должно быть веб-приложением само по себе, оно может быть обычным настольным приложением (я думаю, не большая разница).

Что все, что мне нужно сделать, чтобы эта функция вызывалась при нажатии кнопки в каком-либо приложении?


Полагаю, вопрос слишком расплывчат, чтобы не отвечать за него как таковой.

Я читаю книгу Head First Design Patterns, и в ней есть много примеров кода для некоторых фиктивных приложений. Конечно, все это в Java. Но я больше знаком с C ++. Поэтому, читая, я просто удивлялся, как я могу подключить свой код к какому-либо приложению. Какова общая процедура?

Для конкретности, как мне подключить его к кнопке на веб-странице?

Ответы [ 2 ]

3 голосов
/ 27 июня 2010

Да, на самом деле между настольным приложением и веб-приложением существует довольно большая разница - по крайней мере, обычно, хотя есть исключения (например, платформа Microsoft Silverlight позволяет вам делать некоторые вещи то же самое в веб-приложении, что и в настольном приложении).

Способ подключения к настольному приложению сильно различается. Необработанные приложения Windows часто включают в себя гигантский оператор switch, основанный на значении «message». MFC использует то, что называется «Карты сообщений». Qt использует так называемые сигналы и слоты.

Однако, вероятно, стоит упомянуть, что в типичном случае вы не особо разбираетесь с этим в коде. Большинство людей позволяют IDE обрабатывать большинство деталей подключения. Он (как правило) создаст скелетную функцию, примерно такую ​​же, как у вас выше (возможно, с еще большим количеством заполненных функций, например, для вызова функций родительского класса и т. Д.), Поэтому все, что вам обычно приходится иметь дело напрямую, это часть //do some stuff.

Правка (в ответ на правку вопроса): веб-страница , вероятно, - последняя вещь, с которой вы хотите иметь дело прямо сейчас. Существует просто огромный диапазон изменений в том, как вы обрабатываете события кнопок и тому подобное на веб-страницах. В частности, вы часто получаете комбинацию действий, которые происходят внутри браузера (например, в Javascript) и вещей, которые происходят на сервере (например, с использованием AJAX). Вы можете вызывать функции либо на клиенте, на сервере, либо на обоих, в ответ на конкретное нажатие кнопки и т. Д., Так что это на самом деле довольно сложный сценарий в целом.

Хотя, безусловно, существуют различия между оконными системами и средами в настольных приложениях, по крайней мере, разница находится в довольно небольшом диапазоне.

1 голос
/ 28 июня 2010

По сути, вы замечаете, что C ++ не поставляется со стандартным пользовательским интерфейсом.Ява делает.(На самом деле он имеет ряд стандартных пользовательских интерфейсов, таких как Swing, AWT, SWT).Это затрудняет определение способа подключения кнопки.

Теперь проблема намного проще, если вы выбираете библиотеку пользовательского интерфейса для использования в сочетании с C ++.Qt - популярный выбор, потому что он прост в использовании, переносим и эффективен.

В Qt ответ состоит из двух частей: вы объявляете int f() в части public slots: вашего диалогового класса, а в конструкторе вашего диалога вы подключаете сигнал нажатия кнопки к слоту int f().

...