将Javascript对象转换为JSAPIPtr时,错误的变体强制转换异常

时间:2013-09-28 11:25:53

标签: javascript c++ com firebreath

我正在初始化一个Javascript对象并将其传递给注册的API函数,其签名如下::

我检查过来自Javascript的变体对象不是空的....

JS档案

按下按钮时调用的初始化函数...

 function Initialize() 
    {
        var Class=function(){this.member1_JS='Red'};
        BorderStyle.prototype.member2_JS='1';
        var obj=new Class();
        plugin().DoTheChanges(obj);

    }

=============================================== ======

1 个答案:

答案 0 :(得分:1)

应该是:

_jsObjPtr= objectFromJavaScript.convert_cast<FB::JSObjectPtr>();

来自javascript的任何对象都是JSObjectPtr;如果它正在对JSAPIPtr执行convert_cast,它将尝试在JSObjectPtr中找到您创建的C ++ JSAPI对象(例如,DicomAPI对象),该对象在大多数浏览器上实际上不起作用,因为它们隐藏得太深而无法返回