Страницы: 1
Сделал все как описано в статье http://developer.mozilla.org/en/docs/How_to_build_a_binary_XPCOM_component_using_Visual_Studio
Сделал скрипт:
try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); const cid = "@starkravingfinkle.org/specialthing;1"; var obj = Components.classes[cid].createInstance(); obj = obj.QueryInterface(Components.interfaces.ISpecialThing); // на этой строчке получаю исключение: NS_ERROR_XPC_BAD_CONVERT_JS_NULL_REF //(NULL can not be used for a c++ reference type) } catch (err) { alert(err); return; } var res = obj.add(3, 4); alert('3+4 = ' + res); var name = obj.name; alert('Name = ' + name); obj.name = 'New Name'; name = obj.name; alert('Name = ' + name);
что это за исключение, почему и как с ним бороться?
У меня стоит:
gecko-sdk-win32-msvc-1.8.0.4.zip
firefox 1.5
Visual Studio 2005
Попутно пара вопросов:
1. Нужно организовать функцию Init и подгрузить пару библиотек. Как это сделать?
2. Сделаю некоторую ф-цию: DoSomth, во время выполнения которой небходимо реализовать прогресс бар, с возможностью прервать операцию. как это сделать?
Отсутствует
Замучался уже...
var obj = Components.classes[cid].createInstance();
здесь все нормально. Встаю отладчиком, конструктор вызывается — все гуд? все работает!
obj = obj.QueryInterface(Components.interfaces.ISpecialThing);
здесь падаем... опять этот нул.... в чем может быть дело?
сделал так:
var obj = Components.classes[cid].createInstance();
alert(Components.interfaces.ISpecialThing);
Получаю сообщение: undefined. Приплыли...
Отредактировано hades (04-10-2007 08:28:38)
Отсутствует
Все решилось гораздо проще!
Я сам, тупица, вместо *.xpt клал в компоненты *.exp
Остается один актульный вопрос: Делаю кнопку, накоторую вешаю ява скрипт. Ява скрипт из моего интерфейса дергает функцию из моего интерфейса, как мне реализовать прогресс бар с возможностью прервать операцию???
Отсутствует
Дело в том, что я только начал изучать xpcom, меня, желательно ткнуть в примерчик!
и еще вопрос: если я вызываю ф-wb. из ява скрипта, ФФ подвисает, надо делать callbak ф-цию, видимо. Скажите, в каком направлении копать?
Отсутствует
Отсутствует
Страницы: 1