2012-07-12 16 views
0

我有一個應用程序設置爲三層蛋糕:上層和下層支持WinRT,但中間不支持。那些較高和較低的WinRT層需要共享對應用程序的CoreWindow對象的引用,但他們的唯一通信通道是通過中間層。我只能通過它的中間非WinRT層。我如何通過中間的非WinRT層傳遞CoreWindow對象?通過非WinRT代碼傳遞WinRT對象類型。

從CoreWindow ^轉換爲void *不會給我任何編譯器的抱怨,但是回到CoreWindow ^會給我類型轉換錯誤。

+0

呵呵,在編譯器中遺留了一些C++/CLI遺留問題。 – 2012-07-12 21:36:01

+3

內部深處,它是一個COM接口指針。隨意通過'IUnknown *'。在C++/CX的環境中,'reinterpret_cast'編譯成QueryInterface()調用。 – 2012-07-13 17:26:18

+0

Seva說什麼 - 如果你有一個winrt對象,並且需要從非C++/CX元素處理它,請使用IUnknown - 所有的winrt接口直接從IInspectable派生,IInspectable派生直接從IUnknown派生。 – 2012-07-14 05:50:54

回答

0

當然,我只是在發佈後才弄明白:我用reinterpret_cast < CoreWindow ^>(windowPtr)。