Любой способ использовать HTML в качестве интерфейса к программе C / C ++? - PullRequest
13 голосов
/ 03 октября 2010

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

Итак, линия связи будет: Пользователь -> HTML-страница (не размещена - она ​​локальная) -> Программа C ++ -> USB-порт

Я бы хотел сделать это так, потому что он переносимый, по крайней мере, с точки зрения пользовательского интерфейса, и я могу свободно писать HTML.

У меня такой вопрос: можно ли использовать страницу HTML для связи с портом USB через программу C ++?

Если нет, я выучу GTK - он достаточно портативный.

PS. Возможно ли это с помощью PHP или Java?

РЕДАКТИРОВАТЬ: только что понял, PHP является серверным языком - он не будет работать в моей ситуации, потому что страница должна быть запущена как программа (IE, просто используйте веб-браузер и HTML в качестве GUI, с фактическим обработка выполнена с использованием C / C ++)

Ответы [ 7 ]

9 голосов
/ 03 октября 2010

На самом деле вы можете создавать веб-приложения на C ++, используя набор инструментов под названием Wt (аналог API для Qt).Существует автономный браузер, а также модуль для Apache.Таким образом, вы можете использовать C ++ в качестве языка программирования так же, как C # с ASP.NET, и, таким образом, вы также можете использовать существующий код C ++.Это не очень элегантно.

Я бы порекомендовал вам изучить Qt и написать поверх него все приложение.Он невероятно портативный и имеет обширный API практически для всего - это фреймворк для приложений;GTK + делает только пользовательский интерфейс, и в C, хотя обертка GTKmm для C ++ хороша.Проверьте это на http://qt.nokia.com - это доступно под GNU LGPL.

6 голосов
/ 03 октября 2010

Я использовал mongoose для управления сервером через HTTP / HTML.Я сгенерировал страницы непосредственно в C ++, но не понимаю, почему вы не можете вызвать интерпретатор PHP для визуализации содержимого страницы.

5 голосов
/ 03 октября 2010

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

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

Это очень респектабельная вещь для изучения (вероятно, с использованием какой-то третьей-партийные библиотеки, чтобы помочь с аспектом веб-сервера), но учится писать приложение с графическим интерфейсом, и последнее здесь более конкретно; -)

Конечно, Java может делать то же самое.Вы даже можете запустить PHP из командной строки и реализовать свой сервер на PHP, хотя это как бы наоборот, как обычно используется PHP.

2 голосов
/ 03 октября 2010

Выезд HTMLayout . Компонент низкого уровня, сам HTMLayout, является бесплатным. Насколько я знаю, сейчас он работает только под Windows, но ведется работа по его переносу на Linux и Mac. (Порт Windows Mobile уже существует). У них также есть Sciter, который построен на HTMLayout и содержит скриптовые возможности. Посмотрите демоверсии, они впечатляют!

(Извините, если это звучало как плагин. Я не связан с ними, но мне действительно нравится HTMLayout :)).

2 голосов
/ 03 октября 2010

Если вы захотите это сделать - ваша программа на C ++ должна будет выполнять роль http-сервера. AFAIK - многие утилиты настройки маршрутизатора работают таким образом (за исключением Apple Airport Express / Extreme) - у них есть небольшой httpd, работающий с html-страницами, обслуживаемыми через CGI.

1 голос
/ 03 октября 2010

Вы можете встроить простой http-сервер (например, http://code.google.com/p/mongoose/), который предоставляет интерфейс REST для функциональности ваших приложений и обслуживает страницу HTML, которая может выполнять вызовы интерфейса.

1 голос
/ 03 октября 2010

Самая близкая вещь, о которой я могу подумать, это написать плагин Firefox / Chrome / IE / Safari и попросить пользователя установить его в своем браузере, чтобы запустить графический интерфейс для управления вашим устройством.

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