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

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

№110-03-2009 15:36:24

alex171069
Участник
 
Группа: Members
Зарегистрирован: 16-01-2009
Сообщений: 26
UA: Firefox 3.0

Регистрация -детали

Здравствуйте уважаемые !

     Хотел бы прояснить вопрос у знающих людей.
А именно - что создает файлы xpti.dat и compreg.dat ?
Меня не ясно почему в xpti.dat пишется создание интерфейса IMycomponent
а в compreg.dat не пишится ни компонент ни интерфейс ??????

Отсутствует

 

№210-03-2009 17:29:24

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: Регистрация -детали

что создает файлы xpti.dat и compreg.dat ?

Эти файлы генерируются при регистрации XPCOM, которая выполняется при запуске приложения в случае, если эти файлы были удалены или при установке/удалении/отключении/включении аддона (по крайней мере если он содержит XPCOM-компоненты).

xpti.dat содержит список всех известных интерфейсов. compreg.dat содержит список всех зарегистрированных XPCOM-компонентов (список файлов, список CLASSIDов и соответствие между CONTRACTIDами и CLASSIDами), а также категории.

compreg.dat должен содержать информацию о самом компоненте, по крайней мере путь к файлу и CLASSID (не путать с аналогичным GUIDом интерфейса). Проще всего сделать поиск в этом файле по CLASSIDу, но лучше всего проветять то, что компонент зарегистрировался, по наличию/отсутствию соответствующего элемента в Components.classes в JavaScript. Можно попробовать удалить эти два файла, чтобы заново зарегистриовать все компоненты. Если не работает, см. Troubleshooting XPCOM components registration.

Отсутствует

 

№311-03-2009 10:51:13

alex171069
Участник
 
Группа: Members
Зарегистрирован: 16-01-2009
Сообщений: 26
UA: Firefox 3.0

Re: Регистрация -детали

Вот file.js который вызывает компонент на выполнение в нем я с помощью alert(obj); проверяю наличие объекта как вы и указывали в предыдущем посту.
  Но дело в том, что этот скрипт ничего не выводит ни сообщения связанные с obj ни сообщения об ошибке ничего .....
  в xpti.dat - интерфейс прописан а вот в compreg.dat ничего нет .....


Выделить код

Код:

// вызов теста компанента 
function MyComponentTest()
{
    var obj = null;
    try
//    {
	//alert(Components.interfaces.IMyComponent);
        // По Contract ID получаем доступ к модулю
        const cid = "@mydomain.com/XPCOMSample/MyComponent;1";
        obj = Components.classes[cid].createInstance(Components.interfaces.IMyComponent);
        
        alert(obj);
        // Получаем указатель на объект нашего интерфейса
         obj = obj.QueryInterface(Components.interfaces.IMyComponent);
/*    }
    catch(err)
    {
      alert("MyComponent ERROR") ;   
      alert(cid)  ;
      alert(err);
        return;
    }
*/
    // Вызываем наш метод для сложения чисел
    var res = obj.Add(3, 4);

    document.getElementById("result").value = "3 + 4 = " + res;
}

Отредактировано Shutnik (11-03-2009 16:08:00)

Отсутствует

 

№411-03-2009 14:13:50

alex171069
Участник
 
Группа: Members
Зарегистрирован: 16-01-2009
Сообщений: 26
UA: Firefox 3.0

Re: Регистрация -детали

По каким причинам может не создаваться (прописываться) в compreg.dat CLASSID  ?
Можно ли как то принудительно туда прописать ?

Отсутствует

 

№511-03-2009 20:58:50

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: Регистрация -детали

По каким причинам может не создаваться (прописываться) в compreg.dat CLASSID  ?

Troubleshooting XPCOM components registration. Если компонент не регистрируется, при правильных настройках в консоли (в процессе регистрации, естесственно, например после удаления xpti.dat и compreg.dat) должно появиться сообщение "Failed to load XPCOM component ..."

Но дело в том, что этот скрипт ничего не выводит ни сообщения связанные с obj ни сообщения об ошибке ничего

Может функция вообще не вызывается? Можно попробовать добавить просто alert("x") для проверки. Еще лучше все-таки раскомментировать try, потому что в случае ошибки иначе ничего и не увидишь.

Кстати, можно проверять проще, через JS-консоль.

Можно ли как то принудительно туда прописать ?

Не стоит: все равно компонент не работает, к тому же при следующей регистрации файл заново перепишется

Отсутствует

 

№612-03-2009 09:33:51

alex171069
Участник
 
Группа: Members
Зарегистрирован: 16-01-2009
Сообщений: 26
UA: Firefox 3.0

Re: Регистрация -детали

Спасибо большое за ответ на мой вопрос !
Я конечно же раскоментировал try блок но это не сильно помогло в решении задачи .
Выводится нечто вот такое

     alert(Components.interfaces.IMyComponent); --- выводит    " IMyComponent"
     alert(cid)  ;     ----  "@mydomain.com/XPCOMSample/MyComponent;1"
      alert(err);   ------- "TypeError: Components.classes[cid] is undefined"
     
     КАК ЖЕ ЕГО ЗАРЕГИСТРИРОВАТЬ ?????

Отсутствует

 

№712-03-2009 15:57:44

Crazy-EyE
Участник
 
Группа: Members
Зарегистрирован: 20-06-2008
Сообщений: 81
UA: Firefox 3.0

Re: Регистрация -детали

КАК ЖЕ ЕГО ЗАРЕГИСТРИРОВАТЬ ?????

Вряд ли здесь можно чем-то помочь, зная только, что компоент не регистрируется.

Я постил одну и ту же ссылку уже два раза. Что отсюда пробовалось?

Отсутствует

 

Board footer

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