>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Нужна помощь по встраиванию Gecko-броузера в приложение на С++ http://forum.mozilla-russia.org/viewtopic.php?id=7448 |
T-Rex > 09-01-2006 20:22:37 |
Здравствуйте. Возникла необходимость в программу на С++ встроить Gecko-броузер вместо IE. Может кто знает где найти примеры встраивания Mozilla'овского броузера в приложение. Или мануал корректный. Буду рад даже пошаговому текстуальному описанию, в общем, любой помощи. Gecko SDK впервые увидел вчера, было бы больше опыта - не спрашивал бы. Заранее всем спасибо. |
Mash > 09-01-2006 21:32:26 |
T-Rex пишет
Чего именно? |
T-Rex > 09-01-2006 22:08:21 |
Appendix A: Setting up the Gecko SDK
На скриншоте больше 2х десятков папок, в дистрибутиве только 4 - bin, include, idl, lib Сырцов Мозиллы не качал - мне нужно чтобы после встраивания броузера, программа не подходила под описание derivative work - т.е. не основывалась на сырцыах броузера, а только на SDK. |
Mash > 09-01-2006 22:42:20 |
Структуру, AFAIK, поменяли. Мне же хотелось узнать следующее: каких именно файлов из мануала не хватает? |
T-Rex > 09-01-2006 22:52:28 |
Похоже, если структуру поменяли, то теперь указанные файлы называются по-другому. В либах 7 штук *.lib файлов, в мануале 5. Это из явно видимых отличий. Больше пока сказать не берусь. Mash, Вы, часом, не подскажете пошаговое руководство по настройке SDK в том виде, в котором оно сейчас есть? Или руководство по встраиванию Gecko для начинающих? |
Mash > 09-01-2006 23:40:17 |
Попытался сейчас из исходников открыть wxEmbed.dsp, но моя студия (2003) ругнулась при конвертации: "Cannot load the project due to a corrupt project file". Да и README ссылаются на какую-то wxMozilla. Откровенно говоря, я в этом деле профан, т.к. мои знания плюсов оставляют желать лучшего, просто темой заинтересовался. Максимум, что я делал, так это писал пару-тройку строк, пытаясь прикрутить SQLite к этому примеру. Подсказать наверное не смогу, а то боюсь что вообще не в ту степь уведу. Попробуйте спросить на xpoint; там есть более толковые в этих вопросах люди. |
T-Rex > 10-01-2006 00:37:27 |
Mash, если решитесь ради академического интереса все-таки довести пример до рабочего состояния - дайте мне знать. e-mail в профиле. Могу помочь с wxWidgets (wxEmbed на ней основывается). Там, в идеале, должен получиться кросс-платформенный проект. Кстати сказать, после копания в мэйкфайле примера, пришел к выводу, что пример для компиляции требует исходник Мозиллы. А за ссылочки спасибо - пойду посмотрю что под ними |
lakostis > 10-01-2006 00:39:54 |
Возможно, Вам стоит подписаться на mozilla-devel@lists.altlinux.org и обсудить эту проблему там. |
T-Rex > 10-01-2006 01:03:34 |
Спасибо, просмотрел темы дискуссий, там 80% Linux-related, но иногда попадаются и по Win32... |
TLev > 10-01-2006 13:04:06 |
Standard Mozilla embedding example application for win32. Basic browser, menus, toolbar, URLbar, html area. -http://lxr.mozilla.org/seamonkey/source/embedding/tests/mfcembed/MfcEmbed.cpp |
T-Rex > 10-01-2006 21:18:50 |
Во всех примерах, MFCEmbed, wxEmbed и т.д. нехватает многих файлов (скачал папку целиком, в некоторых html-файлах, в которых должен быть исходный код, так и написано, "This file does not exist"). С момента их написания, видимо, API успело достаточно сильно измениться. пытаюсь собрать wxEmbed - ничего не получается... пока вот, почти избавился от разногласий в версиях API, но все-равно, многих заголовков нехватает, наверное прийдется качать весь исходник Мозиллы с моим соединением на это неделя уйдет |
ViRUS > 11-01-2006 00:07:35 |
T-Rex |
T-Rex > 11-01-2006 00:49:19 |
Ага, значит, теоретически после получения исходника Мозиллы у меня есть шанс еще и рабочий пример получить... ладно... nsresult rv; |
ViRUS > 11-01-2006 01:13:32 |
T-Rex ЗЫ: Начсёт "могли позаботится" - опытным путём выяснил, что вид генерируемых заголовков и статических библиотек сильно зависит от ключей указанных при сборке, видимо поэтому они и не включены в комплект... |
T-Rex > 11-01-2006 02:25:30 |
Черт... видимо, с таким раскладом, вся моя работа подпадает под описание derivative work. Надо тогда думать как сделать так чтобы мой компонент поставлялся без исходного кода Mozilla, в противном случае прийдется делать его OpenSource, что неприемлемо Есть здесь люди, которые могут толково объяснить, в каких случаях производные библиотеки-компоненты-программы, использующие код Mozilla должны распостраняться с исходным кодом? Macromedia, на сколько я помню, выпустила какой-то продукт на основе Mozilla'овского движка, но он не OpenSource. |
Mash > 11-01-2006 07:02:20 |
T-Rex пишет
Максимум 4-5 часов на дайлапе: tar.bz2 <-- http://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.8b1/source/ Оно того стоит. |
T-Rex > 11-01-2006 16:01:22 |
Уже качнул... вечером сяду разбирать сырцы и попробую скомпилить. |
T-Rex > 11-01-2006 18:52:39 |
Скажите пожалуйста, а есть ли возможность собрать Mozilla без использования cygwin? Не хотелось бы иметь зависимость от cygwin1.dll ЗЫ: А есть ли в природе готовые файлы проекта для сборки в VisualStudio.NET ? |
T-Rex > 12-01-2006 00:37:35 |
Вот пошаговое описание действий: - скачал сырцы Мозиллы, распаковал в C:/mozilla
- написал такой батник для настроек переменных среды ENV.BAT Выделить код Код:@ECHO OFF set HOME=c:\mozilla set MOZ_BITS=32 set MOZ_TOOLS=%HOME%\moztools set OS_TARGET=WINNT set WINOS=%OS_TARGET% set _MSC_VER=1310 cd %MOZ_TOOLS%\windows call install.bat cd %HOME% set GLIB_PREFIX=C:\mozilla\win32build\vc71 set LIBIDL_PREFIX=C:\mozilla\win32build\vc71 SET PATH=C:\mozilla\win32build\vc71;%PATH% SET PATH=C:\mozilla\win32build\vc71\bin;%PATH% SET PATH=C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin;%PATH% SET PATH=C:\Program Files\Microsoft Platform SDK\Bin;%PATH% SET PATH=%SystemRoot%\system32;%PATH% SET PATH=%SystemRoot%;%PATH% SET PATH=%SystemRoot%\System32\wbem;%PATH% SET PATH=C:\mozilla\Perl\bin;%PATH% SET PATH=C:\mozilla\cygwin\bin;%PATH% SET PATH=C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE;%PATH% SET PATH=C:\Program Files\Microsoft Platform SDK\Bin\Win64;%PATH% set PATH=%PATH%;%MOZ_TOOLS%\BIN set PATH=%PATH%;%HOME%\PERL\BIN set PATH=%PATH%;%HOME%\CygWin\bin set PATH=%PATH%;%HOME%\moztools\windows\include SET LIB= SET LIB=%LIB%;C:\Program Files\Microsoft Platform SDK\Lib; SET LIB=%LIB%;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib; SET LIB=%LIB%;C:\Program Files\Microsoft SDK\Lib\IA64 set DISABLE_TESTS=0 set MOZ_SRC=%HOME% set MOZ_NO_ACTIVEX_SUPPORT=1 set CONFIG_SHELL=SH.EXE call "C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin\VCVARS32.BAT" Этот батник проинсталил мне тулзы и настроил переменные среды... вроде не ругнулся ни разу - запустил cygwin, перешел в c:/mozilla Выдает ошибку Выделить код Код:Microsoft (R) Program Maintenance Utility Version 7.10.3077 Copyright (C) Microsoft Corporation. All rights reserved. client.mk(101) : fatal error U1033: syntax error : '=' unexpected Stop. Пробовал запускать из cygwin, выдает точно такую же ошибку Выделить код Код:MODULES_suite := \ SeaMonkeyAll \ mozilla/ipc/ipcd \ mozilla/modules/libpr0n \ mozilla/accessible \ mozilla/security/manager \ mozilla/toolkit \ mozilla/storage \ mozilla/db/sqlite3 \ $(NULL) Подскажите плз., что я упустил... почему ругается? |
ViRUS > 12-01-2006 04:07:23 |
Цугвин нужен только на этапе сборке - используются утилиты из него. Сборка от cygwin1.dll не зависит.
К сожалению природа пока на это не разродилась...
А по рукам? nmake - это Микрософтовый make. Юниксовых make-файлов не понимает. Тебе нужно делать так: При этом последовательность действий такая: |
T-Rex > 12-01-2006 04:16:27 |
На счет nmake - нашел в одной из мурзилок в сети... |
T-Rex > 12-01-2006 18:45:54 |
Я не знаю как... но оно собралось %) Не знаю, получалось ли у кого-нибудь собрать Мозиллу не имея предустановленно VisualStudio (используя только бесплатный VC++ ToolKit 2003 и PSDK), но ИМХО это невозможно (т.к. в ATL-заголовках PSDK указаны библиотеки, которые в самой PSDK имеются только для 64-битных процессоров) А еще я пришел к выводу, что не стОит слушать всяких умных дядек из-за бугра, т.к. их мануалы все-равно не работают (почти правильный мануал нашел здесь на mozilla.ru - по сборке FF и TB из сырцов)... немного пришлось позаморачиваться, но эффект есть. Всем спасибо за помощь со сборкой. Но я думаю что это еще не конец |
T-Rex > 12-01-2006 21:15:50 |
У меня получилось собрать пример wxEmbed, но оказалось что Мозилла библиотеки подгружает динамически (MultiThreaded DLL), сам файл mozilla.exe весит всего 64 КБ, что только подтверждает мои догадки, а мне нужно чтобы подгружала статически (MultiThreaded), дабы убрать зависимости при переносе на другую машину. В файле mozilla/mozilla/.mozconfig есть строки ... или .mozconfig у меня при сборке не использовался... или... одно из двух... Не подскажете, какие переменные среды нужно установить перед сборкой для обеспечения статической линковки библиотек? |
T-Rex > 13-01-2006 03:03:23 |
Как бы там ни было, примеры заработали, и моя проблема почти решена. У меня получилось перевести окно броузера в примере в режим редактирования, что изначально и было целью осталось только разобраться, как сохранять внесенные изменения. Жаль, конечно, что прийдется таскать за собой кучу библиотек (не мозилловских), но это меньшее из зол. Как-нибудб на досуге попробую качнуть исходник FF и постараюсь прикрутить его библиотеки к примеру. Если есть необходимость, могу выложить куда-нибудь полное описание действий по сборке Mozilla-1.8b1, в помощь остальным страждущим. |
Viper > 13-01-2006 03:11:20 |
T-Rex Выкладвай сюда (или куда-нибудь ещё ), перенесём в wiki. |
T-Rex > 13-01-2006 18:23:14 |
ДЛЯ СБОРКИ НУЖНА Visual Studio .NET 2003 Скачать исходник Мозиллы Скачать и установить Platform SDK (на данный момент последняя версия MS PSDK for Win2003 sp1) Пишем BAT-файл для автоматизации сборки (C:\build.bat) Выделить код Код:@ECHO OFF SET PATH=C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin;C:\Program Files\Microsoft Platform SDK\Bin;C:\vc71\bin;C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;C:\Program Files\Microsoft Platform SDK\Bin;C:\Program Files\Microsoft.NET\SDK\v1.1\Bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\wbem;C:\moztools\bin;C:\cygwin\bin;C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE;C:\Program Files\Microsoft Platform SDK\Bin\win64;C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322;C:\masm32\BIN;C:\Perl\bin SET LIB=C:\Program Files\Microsoft.NET\SDK\v1.1\Lib;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Lib;C:\masm32\LIB;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\lib;C:\Program Files\Microsoft Platform SDK\Lib\IA64;C:\Program Files\Microsoft Platform SDK\Lib;C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib; SET INCLUDE=C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK\Include;C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;C:\Program Files\Microsoft.NET\SDK\v1.1\include;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\atlmfc\include;C:\Program Files\Microsoft Platform SDK\include\Win64\crt;C:\masm32\INCLUDE;C:\Program Files\Microsoft Platform SDK\Include\mfc;C:\Program Files\Microsoft Platform SDK\include SET GLIB_PREFIX=C:\vc71 SET LIBIDL_PREFIX=C:\vc71 SET MOZ_TOOLS=C:\moztools SET CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot SET HOME=C:\mozilla SET CVS_RSH=ssh SET MOZ_BUILD_APP=suite SET MOZILLA_OFFICIAL=1 SET BUILD_OFFICIAL=1 SET OS_TARGET=WINNT SET WINOS=%OS_TARGET% SET NO_MFC=1 SET ENABLE_TESTS= SET DISABLE_TESTS=1 SET MOZ_NO_ACTIVEX_SUPPORT=1 ECHO Installation environment variables set! @ECHO ON cd .\mozilla make -f client.mk build pause В c:\mozilla\configure в строках Выделить код Код:if test "$_MIDL_MAJOR_VERSION" != "5" -a "$_MIDL_FULL_VERSION" != "6.00.0347" -a "$_MIDL_FULL_VERSION" != "6.00.0361" -a "$_MIDL_FULL_VERSION" != "6.00.0364"; then { echo "configure: error: Midl version $_MIDL_FULL_VERSION was found. Midl version must be 5.x.x (VC6*) or 6.00.0347 (VC7) or 6.00.0361 (VC.net 2003) or 6.00.0364 (VC 2005)." 1>&2; exit 1; } fi заменить 6.00.0361 на 6.00.0366 т.к. midl.exe в Platform SDK имеет версию 6.00.0366 Всё, теперь можно собирать и ждем Вроде ничего не упустил |
igorsub > 13-01-2006 19:33:18 |
А как назвать-то статью? |
T-Rex > 13-01-2006 19:41:35 |
Да так и назови "Сборка Mozilla 1.8 с помощью компилятора от Microsoft под Windows" |
igorsub > 13-01-2006 19:45:34 |
Добавил в Wiki. |
ViRUS > 14-01-2006 11:47:11 |
Это точно! Я Мозиллу собирал на VS6 SP5, хотя везде написано, что при установленном SP5 сборка становится невозможной... |
softmax > 08-05-2006 11:21:47 |
А у кого-нибудь есть опыт встраивания Gecko по средствам VS 2005? Необходимо встроить движок Gecko в приложение под .NET, пробую разобраться с исходниками риложения wxEmbed - ничего не выходить. Приложение требует скомпилированной Mozilla ... Попытался сделать всё как описано - реакции 0! make не находиться (пишет что make.exe незнакомая команда). Ещё не понятна последовательность запуска: P.S. С С++ сталкивался ооочень не надолго и очень давно.... |
LattyF > 08-05-2006 13:07:46 |
Я думаю вам встраивание Gecko на данном этапе не осилить. Это ведь не плюшки лопать Тем более что
. К сожалению, с Gecko не связывался, по решению проблемы
могу порекомендовать вот это. Там под win32 все есть. Копайтесь, разбирайтесь. |
softmax > 08-05-2006 13:13:09 |
ЭЭЭ Ну мне нужно всего-лишь сделать wrapping. Думаю справлюсь (плюшки я впрочем тоже люблю) Так с make похоже облажался я, неправильно установив cygwin. Сейчас попробую переставить..... |
LattyF > 08-05-2006 13:28:44 |
softmax пишет
Ну тогда ладно, прощаю |
softmax > 08-05-2006 13:50:41 |
Так, вроде компиляция сдвинулась с мёртвой точки, но до конца не дошла. Запнувшись вот на этом |
T-Rex > 08-05-2006 18:50:20 |
Крайне рекомендую пользоваться туториалом в Wiki. Только что перепроверил у себя - работает.
Логика в том что писал я универсальный батник чтобы без проблем компилилось собственно, свою функцию он выполняет (для VS2003). На счет 2005й... ухъ.. там столько всего в новом компиляторе наворочено, что я не могу сказать точно на счет того, удастся ли скомпилить им... на днях попробую, может получится... я пока пользуюсь сборкой созданной с VC++ ToolKit 2003 Кстати, я тоже заинтересован во wrapper'е для .NET, если все удастся - просьба поделиться |
softmax > 08-05-2006 19:16:29 |
ActiveX нашёл - но клиенту это не подходит он НЕ хочет завязываться на всяких COM activeX и прочее... The application failed to initialize properly (0x80000003). /cygdrive/d/dotNetProjects/daVinchi/mozilla/build/cygwin-wrapper ../../dist/bin/xpidl.exe -m header -w -I/cyg |
T-Rex > 08-05-2006 19:47:37 |
Мммм... а если попробовать поиграться с флагами для SHARED/STATIC build? Я уже не помню.. где-то в makefile'ах было... Я тогда пытался сделать полностью статическую сборку и у меня не получилось... как-то оно по умолчанию собиралось всё с Multithreaded DLL. |
softmax > 08-05-2006 19:55:39 |
Собираю руководствуясь документацией из WIKI. MS Visual C++ ToolKit 2003 не устанавливал. Кстати по поводу "Скачать glib и libIDL для VC++ v7.1" я использовал вот эти библиотеки: http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/historic/vc8/vc8_moztools.zip а не VC71. |
T-Rex > 08-05-2006 20:03:54 |
OK, я тогда тоже сегодня попытаюсь скачать всё что нужно для компиляции с VS2005 и посмотрим что получится... все равно пора бы уже перевести мой компонентик на 2005ю Да, еще одно.. что-то я не могу на mozilla'овском сайте найти те библиотеки libIDL и glib для 8й версии компилятора... вы пользуетесь теми что для 7.1 или где-то можно взять и для 8й? ... |
softmax > 08-05-2006 20:06:26 |
Буду благодарен, если поделитесь результами... |
T-Rex > 08-05-2006 21:51:58 |
Хммм.. у меня та же ошибка выскакивает. |
T-Rex > 08-05-2006 22:41:37 |
У меня тут еще вопросик образовался, вы часом не знаете, как пользоваться .mozconfig-файлом, в какую папку его ложить и что в батнике дописывать чтобы он использовался? Выделить код Код:. $topsrcdir/browser/config/mozconfig export BUILD_OFFICIAL=1 export MOZILLA_OFFICIAL=1 mk_add_options BUILD_OFFICIAL=1 mk_add_options MOZILLA_OFFICIAL=1 ac_add_options --disable-shared ac_add_options --enable-static ac_add_options --disable-activex ac_add_options --disable-activex-scripting ac_add_options --disable-debug ac_add_options --disable-tests ac_add_options --disable-logging ac_add_options --enable-svg ac_add_options --enable-canvas |
softmax > 08-05-2006 23:10:53 |
Честно говоря не знаю. Боюсь такие тонкости не для меня. Хотя попытаюсь покопаться в сети может что-нибудь и нарою.... Проблемку msvcr80.dll решил аналогично. Теперь по проблемке - в забугорных ресурсах проскальзывала инфа, что мол надо прописывать пути к libIDL и glib - самыми первыми в PATH, но мне такое решение не помогло, спотыкается как и раньше .... |
Unghost > 09-05-2006 02:35:19 |
T-Rex
Просто пользоваться. Писать в него нужные параметры.
Туда, где находятся исходники Mozilla, то есть в одну папку с файлом configure
Ничего не дописывать, он используется автоматически. |
T-Rex > 09-05-2006 04:32:33 |
Unghost Может у кого-нибудь получалось собрать Мозиллу 2005й студией? Поделитесь опытом plz. |
softmax > 11-05-2006 00:03:40 |
Честно говоря я уже отчаился ... буду ставить VirtualPC и компилять по 2003, потом переносить в 2005 - но уже под .NET |
T-Rex > 11-05-2006 00:25:26 |
softmax, еще вариант попробовать скомпилить сырцы FF, говорят для них Static Build работает (лично не пробовал, только слухи... у меня исходник v1.5 валяется, всё руки не доходят чтобы скомпилить). И еще.. кажись без исходников той же libIDL, которая ну явно собрана с флагом MultiThreaded DLL, вряд ли получится сделать полностью статический билд, не зависящий от библиотек рантайма, которые поставляются с 2005й студией. Я не уверен что у меня в ближайшие дни будет время собрать FF из исходников, поэтому предлагаю вам сделать это раньше меня и поделиться впечатлениями. Если будут проблемы и с этим, тогда "будем посмотреть" что можно еще придумать. Как я уже говорил, я тоже заинтересован в сборке всего этого хозяйства под 2005ю студию, поэтому постараюсь помочь чем могу... Да.. попробуйте в мэйл-листах гугловских распросить людей, как они с этой проблемой борются, ... у меня тут где-то адреса пары форумов были в архивах... я поспрашиваю там, может чего получится узнать |
softmax > 11-05-2006 15:32:30 |
Если будет время обязательно попробую с FF. Как временную меру, сделал следующее: Поставил VirtualPC, под на него WinXP + VS2003. Откомпилировал - ессно всё ок! |
T-Rex > 11-05-2006 17:25:35 |
Вобще-то должен... но там таааааак коряво все сделано.. (хотя сам по себе у меня он скомпилился, но вот проект на его основе создать... это было нечто.. 4 часа мучился ) |
softmax > 11-05-2006 17:27:45 |
Если не ооочень затруднит сбросте плиз на softmax[сабака]hotbox.ru |
INFOMAN > 11-05-2006 20:34:40 |
В исходниках в папке extensions лежит некий manticore README пишет
|
softmax > 12-05-2006 11:05:53 |
Да уж чего только нет в исходних Mozilla ))) Посмотрю обязательно.... |
softmax > 12-05-2006 14:43:58 |
Так, посмотрел manticore - если честно весьма корявая апликация, котороя к томуже не валидно завершается, ну да ладно. Никак не могу найти установку параметров Proxy! Как работет с ними (proxy-параметрами) mozctrlx.dll? |
softmax > 15-05-2006 11:20:06 |
T-Rex |
softmax > 16-05-2006 11:17:21 |
Кстати сделал сравнение ActiveX компонент IE и Mozilla, в целом резулльтаты сопоставимые, как по памяти так и по скорости работы. в среднем мозилла еслт больше на 2-4 Мб. |
softmax > 06-06-2006 18:46:08 |
Удалось скомпиляь FireFox под 2005-ую студию. Если интересуют подробности постараюсь выложить в ближайшее время! |
softmax > 06-06-2006 18:51:41 |
Основня проблема - валился xpidl - для него просто скопировать xpidl.exe.manifest в то место откуда он вызывается! |
T-Rex > 06-06-2006 19:30:58 |
Если не трудно, выложите, plz. пошаговое описание действий по сборке FF со ссылками. |
T-Rex > 06-06-2006 19:32:49 |
Да, еще вопрос, FF собирается со статической линковкой или с динамической (с динамической большинство исполняемых файлов в каталоге bin имеют размер 64k)? |
softmax > 06-06-2006 19:45:01 |
Я так полагаю что firefox.exe имеющий 135 К - одназначно показатель динамической сборки |
softmax > 06-06-2006 20:03:46 |
Я сейчас подымаю DotNetEmbed (забытый Wrapper внутри mozill-овских исходников). Под Net 1.1. пример удалось оживить, но вот под 2.0 DotNetEmbed не компиляется корректно. Т.е. на выходе dll есть, но подключить её в .NET проекты невозможно. пишет FileNotFound. Естественно референс на Dll прописан. По поводу компиляции - в соответсвии с рекомендациями людей умеющих работать с cygwin - я всё компилял в нём. сперва запускаем ./configure ... с параметрами (вот ту п.3 они описаны: http://developer.mozilla.org/en/docs/VC8_Build_Instructions#Visual_Studio_2005 Вот вообщем-то если кратко, постараюсь через пару дней выложить подробную инструкцию.... |
T-Rex > 06-06-2006 20:13:23 |
Сходил посмотрел что там по ссылке... во 2м пункте указано что нужна Platform SDK.... вы ее устанавливали? По-идее, при наличии полной версии VisualStudio 2005 (не Express), необходимости в PSDK быть не должно (точно так же как и не должно быть необходимости в VC++ 2003 Toolkit при наличии нормальной VS2003 и правильно прописанных путей и переменных окружения). |
softmax > 06-06-2006 20:15:20 |
T-Rex |
softmax > 06-06-2006 20:49:16 |
Всё!!! DotNetEmbed под NET 2.0 покорён! Удалось получить 100% рабочий код. |
T-Rex > 06-06-2006 23:15:32 |
Надеюсь, у вас найдется время для написания небольшой статейки по этому поводу |
LattyF > 06-06-2006 23:21:46 |
Какой небольшой! Писать подробную статья в наш Wiki. Со всеми заковыками |
softmax > 07-06-2006 12:11:31 |
К концу недели оринтеровочно в пятницу будут подробности... Раньше сложновато. |
softmax > 08-06-2006 15:11:35 |
Итак, небольшое исследование процесса компиляци FireFox. И описание того как мне удалось скомпилировать cей непокорный тул при помощи MS Visual Studio 2005 Итак для компиляции firefox под 2005-ую студию вам необходимо следующее: ash -- UNIX-like command line interpreter shell (Base category) 5. Главное Как я понял проблема компиляции заключается в том чтобы в правильной последовательности определить пути к Теперь непосредственно скрипт # C:\MVC – Папка с установленной MS Visual Studio 2005 export MOZ_TOOLS=`cygpath -a -u С:/projects/vc8-mo~1` export PATH=$MOZ_TOOLS/bin:$PATH export NO_MFC=1 export INCLUDE="c:\\mvc\\vc\\include;c:\\psdk\\include;$INCLUDE" 6. После того как переменные установленны, в той же сессии cygwin, идём в папку с ff и выполняем: 7. Если configure отработало нормально запускаем make: make -f makefile. 8. В процессе компиляции получаем косяк с xpidl.exe (он просто вылетает). Вылетает он из-за отсутствия manifest-файла. Находим его в глубинах ff и кидаем его в dist\bin. Настоятельно рекомендую точно также скопировать .manifest файлы для всех остальных exe и dll файлов которые вы найдёте в dist\bin 9. Всё дальше косяков быть не должно. За исключением отсутвия manifest-файла для самого firefox.exe. Можно создать его вручную (по аналогии с xpidl.exe). Вот вообщем-то и весь алгоритм. Жду коментариев! |
T-Rex > 08-06-2006 15:25:12 |
Ухъ... как же не хочется ЭТО качать... попробую без него, может получится Попробую в ближайшее время скомпилить... может получится как-нибудь упростить процесс сборки. Уж очень не хочется в cygwin ковыряться... я вобще его воспринимаю как "необходимое зло" ибо лишние зависимости при сборке это очень и очень плохо. В этом плане меня порадовали исходники Miranda IM - там просто проект для VS, не требующий никакого дополнительного ПО. |
softmax > 08-06-2006 15:29:59 |
T-Rex |
softmax > 12-06-2006 16:43:01 |
Народ, есть ли у кого-нить представление как "чистый" Gecko - engine работает с Proxy? Часть настроек я могу установить в defaults\profile\pref.js (на сколько я могу судить), но вот как прописать/передать пароль, который запрашивает сервер при аутентификации? |
Syber > 12-06-2006 16:53:10 |
softmax пишет
Реализуй nsIPromptService... |
softmax > 12-06-2006 16:56:13 |
Попробую..... Спасибо! |
Syber > 12-06-2006 17:19:27 |
softmax пишет
Подругому... хм.. ну у мозилы ведь есть пассворд менеджер... если сразу туда вписать.. а так больше не знаю.. Можно конечно и без окон... просто в функцию (которой нужно дать пароль) приходит параметр типа ссылка на ссылку... туда и пишем пароль который нужен. А интерфейс придется реализовать по любэ! |
softmax > 13-06-2006 12:43:10 |
А надо ли как-то отдельно регистрировать объект имплементирующий nsIPromptService? Или можно обойтись без этого? В доке как-то странно описано регистрация nsIXXXX... сервисов. Как мне его зарегистрировать. И ещё - где моя аппликация должна хранить настройки для proxy? |
Syber > 13-06-2006 13:55:31 |
softmax пишет
Конечно нада регистрировать... Выделить код Код:nsCOMPtr<nsIFactory> promptFactory; rv = NS_NewPromptServiceFactory(getter_AddRefs(promptFactory), this); //MakeFactory(getter_AddRefs(promptFactory)); pPrompt = promptFactory; rv = nsComponentManager::RegisterFactory(kPromptServiceCID, "Prompt Service", "@mozilla.org/embedcomp/prompt-service;1", promptFactory, PR_TRUE); а что это (NS_NewPromptServiceFactory) за ф-ия, смотри файл mozilla\embedding\browser\activex\src\control\PromptService.cpp и хидер.... смотри сэмплы.. там есть ответы на твои вопросы (правда иногда.. ) а прокси хнаниться в настройках пользователя... иными словами делай следующее: ааа так тебе программно это нужно ставить... Выделить код Код:nsCOMPtr<nsIPref> prefs(do_GetService(NS_PREF_CONTRACTID, &rv)); rv = prefs->SetCharPref(_T("browser.startup.homepage"), m_bStartHome); |
softmax > 13-06-2006 14:00:54 |
Syber Ещё тебя потревожу ... Вот все эти nsIXxxxxX как я понял НЕ РЕАЛИЗОВАНЫ самим Gecko - engine? Где-то на mozilla.org проскакивала инфа, что реализация этих самых интерфесов необходима если я скажем хочу поменять их СТАНДАРТНУЮ имплементацию, или всё же я прав - и всё необходимо реализовывать вручную. |
Syber > 13-06-2006 14:26:32 |
softmax пишет
что то реализовано, что то нет! |
softmax > 14-06-2006 13:56:50 |
Странно подключил nsIPromptService... Часть ф-ций работает - часть нет. |
Syber > 14-06-2006 14:56:54 |
softmax пишет
хм.. даже не знаю что и сказать... |
softmax > 14-06-2006 15:59:24 |
Немного не по теме - но разбираюсь с исходниками .NET библиотеки (которая DotNetEmbed) - понимаю что Open Source - это куча отрицательных сторон ... Гордая mozilla вместе с ff содержит в себе пример абсолютно безалаберного отношения к написанию программ. Да, конечно хорошо что DotNetEmebed есть, но я не вижу больших проблем в том чтобы привести код в какой-либо благородный вид перед тем как это выкладывать ... Мне бы например было бы стыдно! |
Syber > 14-06-2006 16:28:03 |
softmax пишет
Атнюдь! |
softmax > 14-06-2006 16:52:50 |
Не буду тут приводить описание, но пример: 2 РАЗНЫХ класса юзают один cpp и 2 h-файла - не думаю что это есть good! (Причём один из классов managed а другой unmanaged). Зачем? Перлы вот такие: Выделить код Код:NS_IMETHODIMP WebBrowserChrome::SetStatus(PRUint32 aType, const PRUnichar* aStatus) { return NS_OK; } я вообще молчу! Чехарда со скобками продолжается и в mfcembed. Неужели так удобно писать? |
softmax > 14-06-2006 17:31:48 |
Прошу воспринимать не как брюзжание - а в порядке здоровой критики |
Syber > 14-06-2006 17:41:17 |
2 cpp файла юзают один header файл - оч. удобно, а особенно в mozille. (мне нравиться - респект!) |
softmax > 04-07-2006 11:45:28 |
Всем привет! |
softmax > 04-07-2006 12:35:23 |
И ещё вопросик - есть ли у кого - нибудь работающий MFCEmbed |
softmax > 04-07-2006 14:26:47 |
Ещё скажите кто-нить честно!!!! Работает ли у вас Autentifiкация на Proxy??? MfcEmbed не открывает Диалога .... Где можно ввести Login/Password |
softmax > 28-07-2006 19:09:26 |
Уважаемый All столкнулся с такое проблемкой - если выкачивать документ используя только сетевые сервисы (через NS_OpenURL()), то диалог аутентификации вызывается. В случае если сделать это используя Gecko, то диалога нет.... Кто-нить сталкивался с подобной ерундой? |
softmax > 08-08-2006 21:10:27 |
Как ни странно проблема решилась ... Не завидую тем кто будет создавать Embeded аппликацию которой нужно будет работать через proxy. |
_RuS_ > 02-09-2006 23:26:58 |
Раньше использовал Mozilla ActiveX Control. Решил посмотеть на mfcEmbed. Ничего не понимаю... Стоит VS2003, и т.п... делаю как описано в WIKI. Единственная разница это Platform SDK for Windows Server 2003 R2. Пытаюсь собрать 1.8b ради работающего mfcEmbed получаю: Выделить код Код:make[5]: Entering directory '/cygdrive/c/mozilla/directory/c-sdk/ldap/include' Makefile:74: *** target pattern contains no '%'. Stop. make[5]: Leaving directory '/cygdrive/c/mozilla/directory/c-sdk/ldap/include' make[4]: *** [export] Error 2 ... make: *** [build] Error 2 Подскажите please как этого избежать или может у кого есть рабочии исходники с которых можно собрать mfcEmbed из VS2003 |
Flyer > 27-09-2006 16:36:34 |
_RuS_ пишет
У меня та же проблема. Как победить пока не знаю. Правда возникает она только если компилять --enable-application=suite, если --enable-application=browser, то этот ldap не компилируется и этой ошибки нет. Зато валится при сборке widget - куча unresolved externals: не нравится чем-то nsString |
softmax > 04-02-2007 16:20:12 |
Проблема с версией cygwin. Сейчас точно не помню в чём именно. Постраюсь глянуть в понедельник на работе. Если ещё актуально конечно. |
LRN > 05-02-2007 02:36:22 |
Пишу на C. Использую MSVS 2005. Знаю азы C++, но не использую (ибо пишу на C). Полагаю, что COM/DCOM/XPCOM - это такие порты ввода/вывода на PC. Хочу сделать приложение под Win32 (для начала), которое бы показывало окно без всего (для начала), в котором бы рендерились web-страницы. Т.е. embed'нуть gecko. P.S. Чисто академический интерес: при билде MZ/FF обязательно пользоваться cygwin'ом? Может, msys подойдёт? |
Anton > 05-02-2007 18:28:30 |
Я так думаю, что не обязательно. Но со специализированными C-макросами из исходников mozilla придётся разбираться в любом случае. |
softmax > 06-02-2007 00:56:23 |
Думаю следует начать с опровержения заблуждений относительно указанных технологий:COM/DCOM/XPCOM |
LRN > 08-02-2007 14:37:37 |
Если можно писать XPCOM-компоненты на C, значит можно и эмбедить на C! Как-то. Ну, это чисто для справки, т.к. ВЫ, как я понял, мне помочь не в силах. |
LRN > 16-02-2007 03:22:23 |
Предлагаю разработчикам Мозиллы учиться у этого человека. Скачал проект, открыл, билднул (без ошибок), кинул к рантаймам - работает. |
_ManiaC_ > 09-06-2007 13:27:45 |
LRN А можно архивы тут где-нибудь выложить, а то они с сайта все битые скачиваются ( |
_ManiaC_ > 09-06-2007 14:32:18 |
Кому-нибудь приходилось встраивать Gecko в приложение на C#? |