Страницы: 1
Добрый день! В общем не могу создать 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)
Отсутствует
хмм, странно, у меня в папке лежат 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 заработать.
Отсутствует
cesspit спасибо вам за помощь, но у меня в данном случае вообще никакой код не работает, даже этот
http://www.iosart.com/firefox/xpcom/xpcom-sample.zip. Если не трудно попробуйте его.
Еще вопрос, у вас в переменной окружения path не прописан путь к gecko-sdk?
И возможно ли создать XPCOM объект используя другие компиляторы, например Midl?
Отредактировано boroda (09-03-2006 12:44:09)
Отсутствует
http://www.iosart.com/firefox/xpcom/xpcom-sample.zip. Если не трудно попробуйте его.
этот то у меня компилится, я с него начинал
Еще вопрос, у вас в переменной окружения path не прописан путь к gecko-sdk?
неа, не прописан, он и не нужен если вы вызываете xpidl.exe находясь в папке где он находится.
И возможно ли создать 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
- у меня работает.
Отсутствует
Ну в общем ничего у меня не получается.
Т.е.
когда компилирую интерфейс с режимами
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 файл?
Отсутствует
Ну в общем ничего у меня не получается.
Т.е.
когда компилирую интерфейс с режимами
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
Как вариант, cesspit можно вам отослать файл idl, что-бы вы у себя его откомпилировали и вернули мне *.h файл?
al_petukhov@mail.ru
а какая ошибка выдаётся когда не работает?
Отредактировано cesspit (10-03-2006 11:46:58)
Отсутствует
а какая ошибка выдаётся когда не работает?
Вот такая http://errorxpidl.narod.ru/index.html
Отредактировано boroda (10-03-2006 12:39:50)
Отсутствует
а какая ошибка выдаётся когда не работает?
Вот такая http://errorxpidl.narod.ru/index.html
мдя, дела ...
ну единственное что могу сказать, что версии xpidl которая фигурирует на скриншоте не нашёл ни в одном из имеющихся SDK. В 1.8b - 1.8.20050.21712, в 1.7.12 - 1.7.20050.25981.
Отсутствует
Странно, ведь все верси skd скачивал отсюда http://ftp.mozilla.org/pub/mozilla.org/ … /releases/
А какая у вас версия xpidl.exe?
И вообще xpidl.exe может работать без какого-либо участия Visual C++, вернее его библиотек (той же msvcr71.dll)?
Извините, но по моему я впадаю в маразм, но не могли-бы мне прислать ваш sdk на мыло evgen-xai@yandex.ru
Отсутствует
Странно, ведь все верси 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.
Отсутствует
УРААА!!!! Заработало
В общем проблема была в библиотеке libIDL-0.6.dll. Она отличается от "вашей" по размеру "моя" - 163 кб "ваша" - 142 кб
Думаю проблема была в том что "моя" библиотека была откомпилированная с помощью .NET 2003. Судя по прилагающемуся файлу описания
"Ваша" возможно с помощью Visual C++ 6.0.
Но в любом случае огромное вам спасибо.
Отредактировано boroda (10-03-2006 17:01:44)
Отсутствует
УРААА!!!! Заработало
В общем проблема была в библиотеке libIDL-0.6.dll. Она отличается от "вашей" по размеру "моя" - 163 кб "ваша" - 142 кб
Думаю проблема была в том что "моя" библиотека была откомпилированная с помощью .NET 2003. Судя по прилагающемуся файлу описания
"Ваша" возможно с помощью Visual C++ 6.0.
Но в любом случае огромное вам спасибо.
хорошо всё то, что хорошо кончается
а не пришлёте мне "вашу" libIDL-0.6.dll или ссылку откуда брали? мне аж интересно чтало что там за трабла была
Отсутствует
Когда-то смотрел руководство по сборбе ФФ на странице
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 выслал по почте
Отсутствует
Тоже пытаюсь запустить 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
Очень надо разобраться.
Отсутствует
Привет
Народ плз, положите куда-нибудь библиотеки, у меня таже трабла, уже перекачал тоже дофига и ничего
http://www.mozdev.org/notes/hello_world_js_component_win.html
Может подскажите как написать Xpcom компанент который блокирует все рисунки и заменяет их своим значком . Пример с предыдущих ссылок я разобрал.
Отсутствует
столкнулся с такой же проблемой
солюшен - брать библиотеки как указано тут
http://developer.mozilla.org/en/docs/How_to_build_a_binary_XPCOM_component_using_Visual_Studio
те из файла wintools.zip
ps а вообще конечно свинство со стороны разработчиков
Отсутствует
Страницы: 1