>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >как с меньшими затратами прикрутить С++ прогу к XPCOM http://forum.mozilla-russia.org/viewtopic.php?id=29878 |
alex171069 > 16-01-2009 17:00:38 |
Господа я не месный так что сильно ногами не пинайте . |
Crazy-EyE > 16-01-2009 19:06:19 |
Можно без XPCOM, но все равно придется написать расширение (extension): Running applications Т.е можно просто запускать скомпилированную прогу и ждать от нее результатов например в файле. Как раз недавно пост был об этом, правда там про линукс. Проблема в том, что если страничка лежит в интернете, для того чтоб все работало, понадобится, чтобы у пользователя в его стояло это расширение. И еще понадобится Interaction between privileged and non-privileged pages Вообщем, вопрос в том, где находится эта веб-страница. |
alex171069 > 16-01-2009 19:49:42 |
Господа речь идет как раз про LINUX и как я понял из доки по XPCOM самое неприятное и сложное при создании XPCOM компонента это уникальный UID который потом используется в .idl для регистрации компонента в системе. |
Crazy-EyE > 16-01-2009 20:15:58 |
самое неприятное и сложное - скомпилировать компонент в первый раз.
Прочти первые две ссылки. Может быть, С++ вообще не понадобится.
Еще раз: основная проблема - это система безопасности в Firefox. Он просто так не даст веб-странице запускать какую-нибудь программу откуда бы то ни было. Ни исполняемый бинарник, ни какой-либо XPCOM-компонент нельзя "прикрутить" непосредственно к веб-странице. Надо делать расширение, которое пользователь будет сам устанавливать в свой Firefox, и только с ним веб-страница будет работать (если конечно сделать все как надо). P.S. Прочитай пожалуйста мой предыдущий пост внимательно и не торопясь и хотя бы просморти ссылки. К сожалению, быстро тут в любом случае не получится. |
alex171069 > 16-01-2009 20:26:55 |
Я сильно извиняюсь за то что ввел вас в заблуждение конечно же пользователь будет использовать прогу локально на своем Firefox-е но суть от этого не меняется JavaScript передает проге некий поток char -ов скажем и поток обработав, прога отдает результат в FireFox обратно. |
Forest > 16-01-2009 23:37:38 |
alex171069 пишет
Если это консольное приложение, надо просто написать расширение, которое будет вызывать это приложение. alex171069 пишет
Но вообще конечно правильнее сделать сервак и на нем запускать это приложение, а из скрипта страницы к нему обращаться. |
alex171069 > 17-01-2009 10:32:17 |
А если сервака нет и развернуть его нет возможности . |
Forest > 17-01-2009 14:05:06 |
alex171069 пишет
Ну если из консоли/wsh-скрипта подцепить никак нельзя, тогда только XPCOM. alex171069 пишет
Если имеется в виду GUID - он делается сторонними средствами (например МС студия умеет делать, а вообще это всё ищется). |
Crazy-EyE > 17-01-2009 21:08:41 |
А сама страница где тогда хостится? Или она по протоколу file:/// загружается? Просто сервер - действительно самое простое и удобное решение.
Если с XPCOM совсем не хочется разбираться, возможно проще написать консольную "обертку", которая будет обрабатывать команды. Но если все-таки решиться писать XPCOM-компонент, надо просто взять какой-нибудь короткий пошаговый туториал и собрать пробный компонент. Дальше проще: немного поменять idl под свою библиотеку и аккуратно реализовать соответствующие функции. Я когда-то использовал туториал http://www.iosart.com/firefox/xpcom/ но сейчас там нет комментариев, в которых тоже было много полезного. Здесь есть несколько ссылок на другие. Generating GUIDs. Регистрировать компонент или через regxpcom (она в Gecko/XULRunner SDK), или, если компонент внутри расширения, он сам зарегистрируется при установке (надо положить его в дирекорию /components и все). |