Веб-интерфейс для консольного приложения C ++? - PullRequest
3 голосов
/ 25 октября 2011

У меня есть проект C ++, для которого мне нужен какой-то графический интерфейс, и у меня нет времени изучать что-то вроде Win32 API (или qt или gtk в этом отношении).

Итак, мой вопрос: Какие варианты у меня есть для создания веб-интерфейса для моего консольного приложения C ++? Например, возможно ли использовать HTML для графического интерфейса и каким-либо образом встроить мой код C ++ в веб-страницу?

Спасибо.

Ответы [ 6 ]

3 голосов
/ 26 октября 2011

Check CppCMS framework. Это позволяет легко реализовывать веб-сервисы на C ++, обрабатывать запросы и выходные ответы, в том числе с помощью шаблонов HTML. Проще говоря, встроенные возможности сценариев C ++ на стороне сервера.

2 голосов
/ 25 октября 2011

Рассматривали ли вы использование Wt веб-инструментария?Это библиотека C ++, предоставляющая веб-интерфейс для программы на C ++.

Вы также можете использовать библиотеку HTTP-сервера, например libonion .

.
1 голос
/ 25 октября 2011

Я сомневаюсь, что это то, что вы хотите, но есть

  • PoCo http://pocoproject.org/docs/Poco.Net.HTTPServer.html

    Он имеет модель HTTPServer / HTTPRequestHandler, которая поддерживает своего рода сервердобрый сценарий на C ++ (например, <?php ... ?>, но с C ++);см. здесь для образца:

    <%@ page class="TimeHandler" %>
    <%!
        #include "Poco/DateTime.h"
        #include "Poco/DateTimeFormatter.h"
        #include "Poco/DateTimeFormat.h"
    
    
        using Poco::DateTime;
        using Poco::DateTimeFormatter;
        using Poco::DateTimeFormat;
    %>
    
    <%
        DateTime now;
        std::string dt(DateTimeFormatter::format(now,  DateTimeFormat::SORTABLE_FORMAT));
    %>
    <html>
    <head>
    <title>Time Sample</title>
    </head>
    <body>
    <h1>Time Sample</h1>
    <p><%= dt %></p>
    </body>
    </html>
    

    • http://pocoproject.org/documentation/PoCoOverview.pdf (раздел 2.9):

      Компилятор страниц сервера C ++

      Компилятор страниц - это инструмент командной строки, который переводит файлы HTML (и другие типы файлов) вКлассы C ++ для использования с HTTP-сервером, предоставляемым сетевой библиотекой.Исходные файлы могут содержать специальные директивы, которые позволяют встраивать код C ++.Синтаксис этих директив основан на синтаксисе, используемом для страниц сервера Java (JSP) и страниц активного сервера (ASP).Это позволяет легко создавать веб-приложения на C ++ с помощью библиотек POCO C ++.

  • Klone Embedded Webserver делает похожие вещи

  • Emscripten способен компилировать обширный код C ++ через промежуточный код LLVM в javascript.Это можно использовать для использования существующих библиотечных функций, работающих полностью в веб-браузере

1 голос
/ 25 октября 2011

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

0 голосов
/ 25 октября 2011

PHP имеет shell_exec , который будет выполнять команду как из командной строки.Фреймворки Python и Ruby, вероятно, поддерживают popen на каком-то уровне, хотя у меня нет конкретной информации.

0 голосов
/ 25 октября 2011

Нужно ли консольному приложению какое-то взаимодействие или оно просто принимает кучу параметров командной строки, запускает и выводит какой-то вывод?

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

Если вам нужно взаимодействовать с приложением из Интернета во время его работы, см. Ожидайте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...