Полезная информация

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№108-03-2006 14:46:18

boroda
Участник
 
Группа: Members
Откуда: Киев
Зарегистрирован: 13-04-2005
Сообщений: 77

Не могу создать XPCOM объект

Добрый день!  В общем не могу создать XPCOM объект.

  Для создания XPCOM объекта пользуюсь этой докой http://www.iosart.com/firefox/xpcom/
Споткнулся еще в самом начале. Т.е. не могу создать header файл, но при этом создается файл typelib.

Проблема выглядит следующим образом. После того как скачал и распаковал 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), эффект везде одинаковый.
Так же непонятно зачем нужны файлы libIDL-0.6.dll и glib-1.2.dll при создании *.h файла? Вроде пол-года назад создавал XPCOM объект по этой-же доке, то никаких проблем не было.
  Если какие-нибудь другие способы создания XPCOM объектов?

Спасибо!

P.S. Всем девушкам форума mozilla.ru
Пусть весна подарит вам легкость, первые теплые лучи солнца — чудесную улыбку, а журчание весенних ручьев — звонкий смех!
Желаю счастья, удачи по жизни, настоящей любви и отличного настроения круглый год!

Отредактировано boroda (08-03-2006 14:51:47)

Отсутствует

 

№209-03-2006 11:47:46

cesspit
Участник
 
Группа: Members
Откуда: СПб
Зарегистрирован: 08-02-2006
Сообщений: 80

Re: Не могу создать XPCOM объект

хмм, странно, у меня в папке лежат 3 файла - xpidl.exe (из sdk 1.8), glib-1.2.dll и libIDL-0.6.dll, больше ничего.
И заголовки и библиотеки типов создаются нормально. Ну libIDL-0.6.dll я полагаю нужна для парсинга idl-кода, а glib-1.2.dll нужна для работы libIDL-0.6.dll. Смысл лога я честно говоря не просёк, там указаны файлы из папки bin sdk и пару библиотек из архива glib-1.2.dll, это значит что система пыталась их подгрузить? gmodule-1.2.dll и gthread-1.2.dll вроде как вообще не нужны....
Как вариант, пришлите ваш idl-код, я  попробую компильнуть, вдруг это глюк idl-компилятора. Если всё ок я вам пришлю свои версии библиотекек и компилятора.
Другие способы создания..., ну это, в принципе вы можете сами написать заголовочный файл для вашего компонента, для этого надо знать правила по которым xpidl преобразует свои типы к си-плюс-плюсным, но мне кажется, что это мягко говоря геморно, проще заставить xpidl заработать.

Отсутствует

 

№309-03-2006 12:08:48

boroda
Участник
 
Группа: Members
Откуда: Киев
Зарегистрирован: 13-04-2005
Сообщений: 77

Re: Не могу создать XPCOM объект

cesspit спасибо вам за помощь, но у меня в данном случае вообще никакой код не работает, даже этот
http://www.iosart.com/firefox/xpcom/xpcom-sample.zip. Если не трудно попробуйте его.

Еще вопрос, у вас в переменной окружения path не прописан путь к gecko-sdk?

И возможно ли создать XPCOM объект используя другие компиляторы, например Midl?

Отредактировано boroda (09-03-2006 12:44:09)

Отсутствует

 

№409-03-2006 14:15:00

cesspit
Участник
 
Группа: Members
Откуда: СПб
Зарегистрирован: 08-02-2006
Сообщений: 80

Re: Не могу создать XPCOM объект

boroda пишет

http://www.iosart.com/firefox/xpcom/xpcom-sample.zip. Если не трудно попробуйте его.

этот то у меня компилится, я с него начинал :)

boroda пишет

Еще вопрос, у вас в переменной окружения path не прописан путь к gecko-sdk?

неа, не прописан, он и не нужен если вы вызываете xpidl.exe находясь в папке где он находится.

boroda пишет

И возможно ли создать XPCOM объект используя другие компиляторы, например Midl?

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
xpidl.exe -m typelib -I .\idl .\IMyComponent.idl

- у меня работает.

Отсутствует

 

№510-03-2006 11:31:33

boroda
Участник
 
Группа: Members
Откуда: Киев
Зарегистрирован: 13-04-2005
Сообщений: 77

Re: Не могу создать XPCOM объект

Ну в общем ничего у меня не получается.

Т.е.
когда компилирую интерфейс с режимами
xpidl.exe -m typelib -I .\idl .\IMyComponent.idl
xpidl.exe -m doc -I .\idl .\IMyComponent.idl
все работает, если с режимами
xpidl.exe -m header -I .\idl .\IMyComponent.idl
xpidl.exe -m java -I .\idl .\IMyComponent.idl
не хочет.

Пропобовал на разных машинах, с разными ОС, даже винду переставлял.

Единственное, когда пробуешь компилировать на чистой ОС, или там где не стоит Visual C++, то xpidl требует еще файл msvcr71.dll. Блин не знаю что делать.

Как вариант, cesspit можно вам отослать файл idl, что-бы вы у себя его откомпилировали и вернули мне *.h файл?

Отсутствует

 

№610-03-2006 11:46:16

cesspit
Участник
 
Группа: Members
Откуда: СПб
Зарегистрирован: 08-02-2006
Сообщений: 80

Re: Не могу создать XPCOM объект

boroda пишет

Ну в общем ничего у меня не получается.

Т.е.
когда компилирую интерфейс с режимами
xpidl.exe -m typelib -I .\idl .\IMyComponent.idl
xpidl.exe -m doc -I .\idl .\IMyComponent.idl
все работает, если с режимами
xpidl.exe -m header -I .\idl .\IMyComponent.idl
xpidl.exe -m java -I .\idl .\IMyComponent.idl
не хочет.

Пропобовал на разных машинах, с разными ОС, даже винду переставлял.

Единственное, когда пробуешь компилировать на чистой ОС, или там где не стоит Visual C++, то xpidl требует еще файл msvcr71.dll. Блин не знаю что делать.

msvcr71.dll нужен для glib-1.2.dll, если не стоит вижуалка, положите его в %windir%\system32

boroda пишет

Как вариант, cesspit можно вам отослать файл idl, что-бы вы у себя его откомпилировали и вернули мне *.h файл?

al_petukhov@mail.ru

а какая ошибка выдаётся когда не работает?

Отредактировано cesspit (10-03-2006 11:46:58)

Отсутствует

 

№710-03-2006 12:35:17

boroda
Участник
 
Группа: Members
Откуда: Киев
Зарегистрирован: 13-04-2005
Сообщений: 77

Re: Не могу создать XPCOM объект

а какая ошибка выдаётся когда не работает?

Вот такая http://errorxpidl.narod.ru/index.html

Отредактировано boroda (10-03-2006 12:39:50)

Отсутствует

 

№810-03-2006 12:49:24

cesspit
Участник
 
Группа: Members
Откуда: СПб
Зарегистрирован: 08-02-2006
Сообщений: 80

Re: Не могу создать XPCOM объект

boroda пишет

а какая ошибка выдаётся когда не работает?

Вот такая http://errorxpidl.narod.ru/index.html

мдя, дела ...
ну единственное что могу сказать, что версии xpidl которая фигурирует на скриншоте не нашёл ни в одном из имеющихся SDK. В 1.8b - 1.8.20050.21712, в 1.7.12 - 1.7.20050.25981.

Отсутствует

 

№910-03-2006 14:26:46

boroda
Участник
 
Группа: Members
Откуда: Киев
Зарегистрирован: 13-04-2005
Сообщений: 77

Re: Не могу создать XPCOM объект

Странно, ведь все верси skd скачивал отсюда http://ftp.mozilla.org/pub/mozilla.org/ … /releases/
А какая у вас версия xpidl.exe?
И вообще xpidl.exe может работать без какого-либо участия Visual C++, вернее его библиотек (той же msvcr71.dll)?

Извините, но по моему я впадаю в маразм, но не могли-бы мне прислать ваш sdk на мыло evgen-xai@yandex.ru

Отсутствует

 

№1010-03-2006 14:45:35

cesspit
Участник
 
Группа: Members
Откуда: СПб
Зарегистрирован: 08-02-2006
Сообщений: 80

Re: Не могу создать XPCOM объект

boroda пишет

Странно, ведь все верси skd скачивал отсюда http://ftp.mozilla.org/pub/mozilla.org/ … /releases/
А какая у вас версия xpidl.exe?
И вообще xpidl.exe может работать без какого-либо участия Visual C++, вернее его библиотек (той же msvcr71.dll)?

Извините, но по моему я впадаю в маразм, но не могли-бы мне прислать ваш sdk на мыло evgen-xai@yandex.ru

щас я работаю на xpidl.exe версии 1.8.20050.21712 из SDK 1.8b (http://ftp.mozilla.org/pub/mozilla.org/ … -1.8b1.zip)
Послал вам на мыло компилятор из 1.8b и библиотеки из моего рабочего варианта, если сишный рантайм от вижуалки у вас есть, то вроде больше ничего не надо.

про зависимости, расклад такой: для xpidl нужны библиотеки LIBIDL-0.6.DLL и GLIB-1.2.DLL. Последняя динамически линкуется с msvcr71.dll (видимо была скомпилена под VS2003). Сам xpidl и первая библиотека ничего кроме того что есть в виндах не хотят. Вы и сами можете это посмотреть с помощью утилиты Dependency Viewer из VS6.0.

Отсутствует

 

№1110-03-2006 16:59:03

boroda
Участник
 
Группа: Members
Откуда: Киев
Зарегистрирован: 13-04-2005
Сообщений: 77

Re: Не могу создать XPCOM объект

УРААА!!!! Заработало

  В общем проблема была в библиотеке libIDL-0.6.dll. Она отличается от "вашей" по размеру "моя" - 163 кб "ваша" - 142 кб

Думаю проблема была в том что "моя" библиотека была откомпилированная с помощью .NET 2003.  Судя по прилагающемуся файлу описания

Выделить код

Код:

These libraries were compiled using MSVC .NET 2003 Professional.

"Ваша" возможно с помощью Visual C++ 6.0.

Но в любом случае огромное вам спасибо.

Отредактировано boroda (10-03-2006 17:01:44)

Отсутствует

 

№1210-03-2006 17:25:40

cesspit
Участник
 
Группа: Members
Откуда: СПб
Зарегистрирован: 08-02-2006
Сообщений: 80

Re: Не могу создать XPCOM объект

boroda пишет

УРААА!!!! Заработало

  В общем проблема была в библиотеке libIDL-0.6.dll. Она отличается от "вашей" по размеру "моя" - 163 кб "ваша" - 142 кб

Думаю проблема была в том что "моя" библиотека была откомпилированная с помощью .NET 2003.  Судя по прилагающемуся файлу описания

Выделить код

Код:

These libraries were compiled using MSVC .NET 2003 Professional.

"Ваша" возможно с помощью Visual C++ 6.0.

Но в любом случае огромное вам спасибо.

хорошо всё то, что хорошо кончается :)
а не пришлёте мне "вашу" libIDL-0.6.dll или ссылку откуда брали? мне аж интересно чтало что там за трабла была

Отсутствует

 

№1310-03-2006 18:47:33

boroda
Участник
 
Группа: Members
Откуда: Киев
Зарегистрирован: 13-04-2005
Сообщений: 77

Re: Не могу создать XPCOM объект

Когда-то смотрел руководство по сборбе ФФ на странице
http://forum.mozilla.ru/doku.php?id=gen … _.net_2003

на ней была ссылка на libDLL
ftp://ftp.mozilla.org/pub/mozilla.org/m … .8-bin.zip

Но сейчас эта ссылка не работает, поэтому я vc71-libIDL-0.6.8-bin.zip выслал по почте

Отсутствует

 

№1429-03-2007 10:46:44

dickest
Участник
 
Группа: Members
Зарегистрирован: 29-03-2007
Сообщений: 1
UA: Opera 9.0

Re: Не могу создать XPCOM объект

Народ плз, положите куда-нибудь библиотеки, у меня таже трабла, уже перекачал тоже дофига и ничего

Отсутствует

 

№1525-04-2007 09:31:04

Luciefer
Участник
 
Группа: Members
Зарегистрирован: 19-02-2007
Сообщений: 6
UA: Opera 9.0

Re: Не могу создать XPCOM объект

Тоже пытаюсь запустить http://www.iosart.com/firefox/xpcom/

Есть 2 вопроса.
1. Нужно ли выполнять вот это. И если да, то что это :)

2.d
Added: When using the included Visual Studio project:
Open the project settings: Project > Settings...
Choose Settings For: All Configurations in the upper left corner.
Open the C/C++ tab and choose Preprocessor in the Category drop-down list.
Make sure that "Additional include directories" points to your Gecko SDK.
Open the Link tab and choose Input in the Category drop-down list.
Make sure that the "Additional library path" points to your Gecko SDK.

2. Как выполнить команду, ибо никакого nmake файла нету

3.d On Windows issue a nmake /f MyComponent.mak command. Debug\MyComponent.dll is created.

Жду ответа тут или icq 325286
Очень надо разобраться.

Отсутствует

 

№1608-05-2007 23:46:34

GEN4IK_85
Участник
 
Группа: Members
Зарегистрирован: 08-05-2007
Сообщений: 1
UA: Firefox 1.5

Re: Не могу создать XPCOM объект

Привет

Народ плз, положите куда-нибудь библиотеки, у меня таже трабла, уже перекачал тоже дофига и ничего

http://www.mozdev.org/notes/hello_world_js_component_win.html

Может подскажите как написать Xpcom компанент который блокирует все рисунки и заменяет их своим значком . Пример с предыдущих ссылок я разобрал.

Отсутствует

 

№1715-10-2007 20:05:40

mikedin
Участник
 
Группа: Members
Зарегистрирован: 15-10-2007
Сообщений: 1
UA: Firefox 2.0

Re: Не могу создать XPCOM объект

столкнулся с такой же проблемой
солюшен - брать библиотеки как указано тут
http://developer.mozilla.org/en/docs/How_to_build_a_binary_XPCOM_component_using_Visual_Studio
те из файла wintools.zip

ps а вообще конечно свинство со стороны разработчиков :)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]