И снова про регистрацию
Я был близок, когда пробовал дефолтные имена фолдеров типа dll и library, но вот попробовать сомponents не сообразил.
У меня возникает схожая проблема. Помещаю xpt и dll-файл в каталог components моего xpi-файла. Но XPCOM компонент не регистрируется и не отображается, например, расширением XPCOM Viewer. Также при попытке его создания получаю сообщение
TypeError: Components.classes['@my.com/.....'] is undefined
Пытался разобраться в чем дело, но больших успехов не достиг. Просмотрел файлы xpti.dat и compreg.dat. В xpti.dat данные о моем компоненте упоминаются в следующих разделах:
[Directories,7]
5,D:\...\FFPlugin\components
[Files,2]
1,IDfXpCom.xpt,5,151,1233155328468
[Interfaces,1366]
930,IMyInerface,{293799ea-f9b4-4fad-ac72-f3e81b4619d3},1,-1,1
а вот в файле compreg.dat упорминаний о моем XPCOM компоненте я не нашел. Полагаю, что ошибка прячется где-то внутри DLL, (скорее всего какая-нить дурацкая опечатка), но как ее определить и локализовать? На что обратить внимание? Что еще раз проверить?
Смотрел IDA, библиотека DLL выглядит достаточно нормально, экспортирует только функцию NSGetModule, которая запихивает в стек два параметра и вызывает функцию со страшной мнемоникой из xpcom.dll. Как бы узнать, что происходит?
![[logo]](/site/images/logo.jpg)