-
Anonymous
C ++ xpcom Компоненты компилируют успех, но не могут получить доступ к идентификатору контракта
Сообщение
Anonymous »
c ++ xpcom Компоненты компиляции успеха, но не могут получить доступ к идентификатору контракта
Сообщение об ошибке: < /p>
Код: Выделить всё
TypeError: Components.classes["@cozmixng.org/xpcom-sample/Calc;1"] is undefined
< /code>
Я проверяю исходный код xpcom-test из github, внесите некоторые изменения для компиляции на Mac Osx,
mycalcmodule.cpp < /p>
#include "mozilla/ModuleUtils.h"
#include "nsIClassInfoImpl.h"
#include "myCalc.h"
NS_GENERIC_FACTORY_CONSTRUCTOR(myCalc)
NS_DEFINE_NAMED_CID(MY_CALC_CID);
static const mozilla::Module::CIDEntry kCalcCIDs[] = {
{ &kMY_CALC_CID, false, NULL, myCalcConstructor },
{ NULL }
};
static const mozilla::Module::ContractIDEntry kCalcContracts[] = {
{ MY_CALC_CONTRACT_ID, &kMY_CALC_CID },
{ NULL }
};
static const mozilla::Module::CategoryEntry kCalcCategories[] = {
{ "my-category", "my-key", MY_CALC_CONTRACT_ID },
{ NULL }
};
static const mozilla::Module kCalcModule = {
mozilla::Module::kVersion,
kCalcCIDs,
kCalcContracts,
kCalcCategories
};
NSMODULE_DEFN(myCalcModule) = &kCalcModule;
< /code>
В этом коде экспортируйте модуль в динамическую библиотеку, вызовите его в JS < /p>
obj = Components.classes['@cozmixng.org/xpcom-
sample/Calc;1'].createInstance(Components.interfaces.myICalc);
Использовать xpcomviewer, не могу исправить @cozmixng.org/xpcom-mample/calc; 1 class!
Весь пакет здесь
http://www.goseas.us/xpcom-test2.tar.gz!
Подробнее здесь:
https://stackoverflow.com/questions/235 ... ontract-id
1750428713
Anonymous
c ++ xpcom Компоненты компиляции успеха, но не могут получить доступ к идентификатору контракта
Сообщение об ошибке: < /p>
[code]TypeError: Components.classes["@cozmixng.org/xpcom-sample/Calc;1"] is undefined
< /code>
Я проверяю исходный код xpcom-test из github, внесите некоторые изменения для компиляции на Mac Osx,
mycalcmodule.cpp < /p>
#include "mozilla/ModuleUtils.h"
#include "nsIClassInfoImpl.h"
#include "myCalc.h"
NS_GENERIC_FACTORY_CONSTRUCTOR(myCalc)
NS_DEFINE_NAMED_CID(MY_CALC_CID);
static const mozilla::Module::CIDEntry kCalcCIDs[] = {
{ &kMY_CALC_CID, false, NULL, myCalcConstructor },
{ NULL }
};
static const mozilla::Module::ContractIDEntry kCalcContracts[] = {
{ MY_CALC_CONTRACT_ID, &kMY_CALC_CID },
{ NULL }
};
static const mozilla::Module::CategoryEntry kCalcCategories[] = {
{ "my-category", "my-key", MY_CALC_CONTRACT_ID },
{ NULL }
};
static const mozilla::Module kCalcModule = {
mozilla::Module::kVersion,
kCalcCIDs,
kCalcContracts,
kCalcCategories
};
NSMODULE_DEFN(myCalcModule) = &kCalcModule;
< /code>
В этом коде экспортируйте модуль в динамическую библиотеку, вызовите его в JS < /p>
obj = Components.classes['@cozmixng.org/xpcom-
sample/Calc;1'].createInstance(Components.interfaces.myICalc);
[/code]
Использовать xpcomviewer, не могу исправить @cozmixng.org/xpcom-mample/calc; 1 class!
Весь пакет здесь http://www.goseas.us/xpcom-test2.tar.gz!
Подробнее здесь: [url]https://stackoverflow.com/questions/23553963/c-xpcom-components-compile-success-but-can-not-access-by-contract-id[/url]