>Форум 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=8847 |
boroda > 08-03-2006 14:46:18 |
Добрый день! В общем не могу создать XPCOM объект. Для создания XPCOM объекта пользуюсь этой докой http://www.iosart.com/firefox/xpcom/ Проблема выглядит следующим образом. После того как скачал и распаковал gecko-sdk, то я не могу запустить xpidl.exe, т.к. он горовит что ему для полного счастья не хватает файлов libIDL-0.6.dll и glib-1.2.dll. Я эти файлы положил в туже директорию что и xpidl.exe. После этого xpidl стал запускаться, но теперь я не могу создать header файл, но могу создать файл typelib. Т.е. при создании заголовочного файла, выскакивает ошибка типа xpidl.exe has encountered a problem and needs to close. Ниже приведен Log написанный ОС WinXP Выделить код Код:<?xml version="1.0" encoding="UTF-16"?> <DATABASE> <EXE NAME="xpidl.exe" FILTER="GRABMI_FILTER_PRIVACY"> <MATCHING_FILE NAME="glib-1.2.dll" SIZE="122880" CHECKSUM="0x184FE022" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="04/05/2004 04:11:42" UPTO_LINK_DATE="04/05/2004 04:11:42"/> <MATCHING_FILE NAME="gmodule-1.2.dll" SIZE="7680" CHECKSUM="0x1EE0A90F" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="04/05/2004 04:11:44" UPTO_LINK_DATE="04/05/2004 04:11:44"/> <MATCHING_FILE NAME="gthread-1.2.dll" SIZE="6144" CHECKSUM="0xC6DEDDA6" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="04/05/2004 04:11:45" UPTO_LINK_DATE="04/05/2004 04:11:45"/> <MATCHING_FILE NAME="libIDL-0.6.dll" SIZE="163840" CHECKSUM="0x209401E0" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="04/05/2004 04:12:17" UPTO_LINK_DATE="04/05/2004 04:12:17"/> <MATCHING_FILE NAME="regxpcom.exe" SIZE="9837" CHECKSUM="0xF5CC0A87" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="02/17/2005 21:13:28" UPTO_LINK_DATE="02/17/2005 21:13:28"/> <MATCHING_FILE NAME="xpidl.exe" SIZE="51817" CHECKSUM="0x242D29BC" BIN_FILE_VERSION="1.8.20050.21712" BIN_PRODUCT_VERSION="1.8.0.0" PRODUCT_VERSION="1.8b: 2005021712" FILE_DESCRIPTION="" COMPANY_NAME="Mozilla Foundation" PRODUCT_NAME="Mozilla" FILE_VERSION="1.8b: 2005021712" ORIGINAL_FILENAME="xpidl.exe" INTERNAL_NAME="xpcom" LEGAL_COPYRIGHT="License: MPL 1.1/GPL 2.0/LGPL 2.1" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.8.20050.21712" UPTO_BIN_PRODUCT_VERSION="1.8.0.0" LINK_DATE="02/17/2005 20:52:31" UPTO_LINK_DATE="02/17/2005 20:52:31" VER_LANGUAGE="Language Neutral [0x0]"/> <MATCHING_FILE NAME="xpt_dump.exe" SIZE="21104" CHECKSUM="0xE419D330" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="02/17/2005 20:52:29" UPTO_LINK_DATE="02/17/2005 20:52:29"/> <MATCHING_FILE NAME="xpt_link.exe" SIZE="17008" CHECKSUM="0x9882D987" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="02/17/2005 20:52:29" UPTO_LINK_DATE="02/17/2005 20:52:29"/> </EXE> </DATABASE> Пробовал различные версии SDK (1.4, 1.7, 1.8) и на разных компьютерах (правда везде стояла XP), эффект везде одинаковый. Спасибо! P.S. Всем девушкам форума mozilla.ru |
cesspit > 09-03-2006 11:47:46 |
хмм, странно, у меня в папке лежат 3 файла - xpidl.exe (из sdk 1.8), glib-1.2.dll и libIDL-0.6.dll, больше ничего. |
boroda > 09-03-2006 12:08:48 |
cesspit спасибо вам за помощь, но у меня в данном случае вообще никакой код не работает, даже этот Еще вопрос, у вас в переменной окружения path не прописан путь к gecko-sdk? И возможно ли создать XPCOM объект используя другие компиляторы, например Midl? |
cesspit > 09-03-2006 14:15:00 |
boroda пишет
этот то у меня компилится, я с него начинал boroda пишет
неа, не прописан, он и не нужен если вы вызываете xpidl.exe находясь в папке где он находится. boroda пишет
midl я думаю точно не подойдёт, он же другой язык понимает - MS IDL, а вам нужно писать на XPIDL, есть ли ещё XPIDL компиляторы - не знаю, вряд ли. Для того, чтобы создать XPCOM-объект XPIDL не обязателен. Он помогает вам в том случае, когда вам нужно из описанного на XPIDL интерфейса получить заголовочный файл интерфейса для вашего будущего компонента и когда вам нужен файл библиотеки типов, чтобы работать с компонентом из js. я щас сделал так: в одну папку положил файлы glib-1.2.dll, libIDL-0.6.dll, xpidl.exe, IMyComponent.idl. Туда же скопировал папку idl из sdk. xpidl.exe -m header -I .\idl .\IMyComponent.idl - у меня работает. |
boroda > 10-03-2006 11:31:33 |
Ну в общем ничего у меня не получается. Т.е. Пропобовал на разных машинах, с разными ОС, даже винду переставлял. Единственное, когда пробуешь компилировать на чистой ОС, или там где не стоит Visual C++, то xpidl требует еще файл msvcr71.dll. Блин не знаю что делать. Как вариант, cesspit можно вам отослать файл idl, что-бы вы у себя его откомпилировали и вернули мне *.h файл? |
cesspit > 10-03-2006 11:46:16 |
boroda пишет
msvcr71.dll нужен для glib-1.2.dll, если не стоит вижуалка, положите его в %windir%\system32 boroda пишет
al_petukhov@mail.ru а какая ошибка выдаётся когда не работает? |
boroda > 10-03-2006 12:35:17 |
Вот такая http://errorxpidl.narod.ru/index.html |
cesspit > 10-03-2006 12:49:24 |
boroda пишет
мдя, дела ... |
boroda > 10-03-2006 14:26:46 |
Странно, ведь все верси skd скачивал отсюда http://ftp.mozilla.org/pub/mozilla.org/ … /releases/ Извините, но по моему я впадаю в маразм, но не могли-бы мне прислать ваш sdk на мыло evgen-xai@yandex.ru |
cesspit > 10-03-2006 14:45:35 |
boroda пишет
щас я работаю на xpidl.exe версии 1.8.20050.21712 из SDK 1.8b (http://ftp.mozilla.org/pub/mozilla.org/ … -1.8b1.zip) про зависимости, расклад такой: для xpidl нужны библиотеки LIBIDL-0.6.DLL и GLIB-1.2.DLL. Последняя динамически линкуется с msvcr71.dll (видимо была скомпилена под VS2003). Сам xpidl и первая библиотека ничего кроме того что есть в виндах не хотят. Вы и сами можете это посмотреть с помощью утилиты Dependency Viewer из VS6.0. |
boroda > 10-03-2006 16:59:03 |
УРААА!!!! Заработало В общем проблема была в библиотеке libIDL-0.6.dll. Она отличается от "вашей" по размеру "моя" - 163 кб "ваша" - 142 кб Думаю проблема была в том что "моя" библиотека была откомпилированная с помощью .NET 2003. Судя по прилагающемуся файлу описания "Ваша" возможно с помощью Visual C++ 6.0. Но в любом случае огромное вам спасибо. |
cesspit > 10-03-2006 17:25:40 |
boroda пишет
хорошо всё то, что хорошо кончается |
boroda > 10-03-2006 18:47:33 |
Когда-то смотрел руководство по сборбе ФФ на странице на ней была ссылка на libDLL Но сейчас эта ссылка не работает, поэтому я vc71-libIDL-0.6.8-bin.zip выслал по почте |
dickest > 29-03-2007 10:46:44 |
Народ плз, положите куда-нибудь библиотеки, у меня таже трабла, уже перекачал тоже дофига и ничего |
Luciefer > 25-04-2007 09:31:04 |
Тоже пытаюсь запустить http://www.iosart.com/firefox/xpcom/ Есть 2 вопроса.
2. Как выполнить команду, ибо никакого nmake файла нету
Жду ответа тут или icq 325286 |
GEN4IK_85 > 08-05-2007 23:46:34 |
Привет
http://www.mozdev.org/notes/hello_world_js_component_win.html Может подскажите как написать Xpcom компанент который блокирует все рисунки и заменяет их своим значком . Пример с предыдущих ссылок я разобрал. |
mikedin > 15-10-2007 20:05:40 |
столкнулся с такой же проблемой ps а вообще конечно свинство со стороны разработчиков |