我有一个小的ATL COM对象实现一个方法(Method1)并在调用此方法时触发一个事件(Event1) .

我可以在我的nodejs脚本中创建这个COM并调用它的方法 . 但是我无法收到它的活动 .

这段代码工作正常:

var win32ole = require('win32ole');

var api = new ActiveXObject("MySampleATLClass.Api");

api.Method1();

但是这段代码会产生错误:

var win32ole = require('win32ole');

var api = new ActiveXObject("MySampleATLClass.Api");

api.Event1 = function(bstr, obj){
    console.log(bstr);
};

api.Method1();

错误详情:

在00000000模块中ASSERT .. \ src \ v8variant.cc(96)@ node_win32ole :: V8Variant :: Cre ateOCVariant:!v-> IsFunction()TypeError:node_win32ole :: V8Variant :: OLESet第二个参数无效(nu ll OCVariant)在Object . 位于Module.load的Object.Module._extensions..js(module.js:474:10)的Module._compile(module.js:456:26)处的(C:\ NodeJs \ 1.js:5:12) module.js:356:32)在Function.Module.rload(module.js:312:12)的Function.Module.runMain(module.js:497:10)启动时(node.js:119:16)at at的node.js:906:3