Windows 8 通过非WinRT代码传递WinRT对象类型。

Windows 8 通过非WinRT代码传递WinRT对象类型。,windows-8,windows-runtime,Windows 8,Windows Runtime,我有一个像三层蛋糕一样的应用程序:上层和下层支持WinRT,但中间不支持。这些上层和下层WinRT需要共享对应用程序CoreWindow对象的引用,但它们唯一的通信通道是通过中间层。我只能通过中间的非WinRT层。如何通过中间的非WinRT层传递CoreWindow对象 从CoreWindow^强制转换为void*不会引起编译器的任何抱怨,但向后转换到CoreWindow^会导致类型转换错误 当然,我只是在发布后才明白:我使用了reinterpret_cast(windowPtr)。呵呵,编译器

我有一个像三层蛋糕一样的应用程序:上层和下层支持WinRT,但中间不支持。这些上层和下层WinRT需要共享对应用程序CoreWindow对象的引用,但它们唯一的通信通道是通过中间层。我只能通过中间的非WinRT层。如何通过中间的非WinRT层传递CoreWindow对象


从CoreWindow^强制转换为void*不会引起编译器的任何抱怨,但向后转换到CoreWindow^会导致类型转换错误

当然,我只是在发布后才明白:我使用了reinterpret_cast(windowPtr)。

呵呵,编译器中留下了一点C++/CLI遗留问题。在其内部深处,它是一个COM接口指针。请随意以
IUnknown*
的身份通过<代码>重新解释\u cast,在C++/CX的上下文中,编译为QueryInterface()调用。Seva所说的-如果您有一个winrt对象并且需要从非C++/CX元素处理它,请使用IUnknown-所有winrt接口直接从IInspectable派生,IInspectable直接从IUnknown派生。