C ++ xpcom组件编译成功但无法通过合同ID访问

时间:2014-05-08 22:54:08

标签: c++ macos firefox mozilla xpcom

C ++ xpcom组件编译成功但无法通过合同ID访问 错误讯息:

TypeError: Components.classes["@cozmixng.org/xpcom-sample/Calc;1"] is undefined

我从github查看xpcom-test源代码,在Mac OSX上进行一些编译修改, myCalcModule.cpp

#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;

在此代码中,将模块导出到动态库,在js中调用它

obj = Components.classes['@cozmixng.org/xpcom-
sample/Calc;1'].createInstance(Components.interfaces.myICalc);

使用XPCOMViewer,不能罚@cozmixng.org/xpcom-sample/Calc;1类! 这里的整个包http://www.goseas.us/xpcom-test2.tar.gz

0 个答案:

没有答案