2016-01-06 16 views
0

我是Windows运行时组件的新手,并一直试图弄清楚如何实现以下内容。从Javascript传递对象到基于C++/CX接口的C++/CX - Windows运行时组件

我想在Javascript中扩展的C++接口。

namespace MySDK { 
    public interface class LoggerPlugin 
    { 
    public: 
     virtual void Log (Platform::String^ Tag, Platform::String^ Messsage); 
    }; 
} 

的C++

namespace MySDK { 
    public ref class Logger sealed : public Platform::Object 
    { 
    public: 
     static Logger^ GetInstance(); 
     void SetPlugin (LoggerPlugin^ Plugin); 
    }; 
} 

我试了一下,可能看起来很傻,但我不知道如何去实现它。

var plugin = { 
    log: function(tag, message) { 
      console.log(tag + ':' + message); 
    } 
}; 

MySdk.Logger.getInstance().setPlugin(plugin); 

,我得到的是

JavaScript runtime error: Type mismatch 

我无法找到如何做到这一点的任何文档或实例的错误,将不胜感激,如果有人可以给我提供了如何可以做到这一点的例子。

+0

这不是C++。也许C++/CX或C++/CLI? – emlai

+0

我的不好,它是C++/CX – tknizam

回答

0

JavaScript不能实现WinRT接口。如果你想有一个插件的JavaScript实现,那么你将需要构建一个引发事件(JavaScript可以订阅)的具体类型,而不是定义虚拟方法(C++或C#可以实现)。