Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;xpcom组件编译成功,但无法通过合同id访问_C++_Macos_Firefox_Mozilla_Xpcom - Fatal编程技术网

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

C++ C++;xpcom组件编译成功,但无法通过合同id访问,c++,macos,firefox,mozilla,xpcom,C++,Macos,Firefox,Mozilla,Xpcom,C++xpcom组件编译成功,但无法通过合同id访问 错误消息: TypeError: Components.classes["@cozmixng.org/xpcom-sample/Calc;1"] is undefined 我从github查看了xpcom测试源代码,对Mac OSX上的编译做了一些更改, myCalcModule.cpp #include "mozilla/ModuleUtils.h" #include "nsIClassInfoImpl.h" #include "myC

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

TypeError: Components.classes["@cozmixng.org/xpcom-sample/Calc;1"] is undefined
我从github查看了xpcom测试源代码,对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,不能对
@cozmixg.org/xpcom-sample/Calc进行微调;1
class!
整个包裹都在这里

二进制组件将是它编译时使用的对象。您是否使用与稍后尝试加载组件的Firefox二进制文件相同版本的XulRunner SDK/Firefox源代码编译代码?通常,如果版本不匹配并且错误被记录到错误控制台…非常感谢!我修复了在install.rdf中添加true的问题,因为如果(aFile.IsZip()){108 NS_错误(“无法从JARs加载二进制组件”);109返回null ptr;110},firefox无法从JARs文件107加载.so/.dll