在 Javascript (WinJS) 中绑定 C++/CLI 委托

Bind on C++/CLI delegate in Javascript (WinJS)

本文关键字:C++ CLI 委托 绑定 Javascript WinJS      更新时间:2023-10-16

我正在为所有主要的操作系统(iOS,macOS,Android和Windows)构建一个Cordova应用程序。

我在 C++/CLI 中编写了一个本机插件 (WinRT) 来调用一些本机函数,该插件使用委托异步返回结果。

我还用 C# 编写了一个测试应用程序,它允许我轻松测试 C++/CLI 代码,而无需编译整个 Cordova 项目。 我能够在 C# 中毫无问题地绑定到 C++/CLI 委托,但在 Javascript 中我无法这样做。

C# 方式(像魅力一样工作):

myCppClass.log += (string logString) =>
{
Debug.WriteLine(logString);
};

Javascript Way(根本不起作用):

myCppClass.addEventListener("log", function (msg) {
console.log(msg);
});

我从以下方面获得了Javascript的方式: https://msdn.microsoft.com/en-us/library/hh779077.aspx

有谁知道如何在 JavaScript 中绑定到 C++/CLI 委托?

谢谢

再次查看 https://msdn.microsoft.com/en-us/library/hh779077.aspx#Anchor_4 示例。

你试过这种方式吗?

var instance = new MyCppClass();
instance.addEventListener("log", function (e) {
console.log(e.msg);
});