Создание веб-конца для программы на C ++

9

Мне было интересно, что будет лучшим методом для создания веб-интерфейса для взаимодействия с программой C ++ на сервере. Сначала я просто подумал только об использовании оболочки из языка веб-сервера (как shell_exec()в PHP), но мне было интересно, есть ли «лучший» способ. Может быть, что-то более родное или это плохая практика по какой-то причине?

Бен
источник
Должно быть на стеке потока не здесь AFAIK. Может быть, неправильно, хотя.
Заканчивается
4
Я подумал, что было бы лучше для программистов. SE, потому что это более теоретический и не требует ответа на основе кода. Это в большей степени основано на идеях, связанных с решением этой задачи, а не на точном способе ее решения.
Бен

Ответы:

7

Веб-программирование на C ++ в значительной степени вышло из моды. Традиционный способ сделать это был с CGI. Смотрите здесь для обучения .

Или вы можете добавить встроенный веб-сервер, такой как mongoose

Тем не менее, я думаю, что проще всего использовать PHP-passthru. Например, на одном из моих сайтов у меня есть программа на C ++, которая генерирует изображения для отображения изображений, которые я делаю:

<?

header("content-type: image/png"); 

$temp = $_GET["temp"];
$rain = $_GET["rain"];

passthru("/home/rrabien/marker $temp $rain")

?>
FigBug
источник
Это выглядит довольно хорошо для меня, спасибо за функцию passthru. Я никогда не слышал об этом. В общем, это то, что я изначально имел в виду, но приятно знать, что это действительно лучший способ достичь того, чего я желал. Спасибо FigBug.
Бен
НЕ используйте passthru без правильного экранирования ввода, иначе вы просите взлома. Прочитайте эту ссылку: acunetix.com/websitesecurity/php-security-1.htm
Джори Себрехтс,
Вот как я это делаю, но я использую Django. Вместо прямого перехода к приложению c ++ у меня есть оболочка python для запуска моего приложения c ++ или для связи через IPC или по сети с демоном, использующим некоторые внутренние api.Works.
michalmocny
3

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


источник
1

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

Что мне знакомо, так это простота расширения Python с помощью C / C ++ . Я считаю, что это можно сделать еще проще с помощью SWiG . Учитывая, что Python имеет множество веб-фреймворков, это может быть вариантом для вас.

dietbuddha
источник