2016-06-27 130 views
2

我有一個UWP C++/cx應用程序和UWP C#類庫。
我該如何使用C++庫中的C++項目中的類?從UWP調用UWP C#代碼C++/cx

  • C++/CLI不支持UWP應用程序,所以我不能做C++/cli包裝。
  • 林不知道,但看起來像COM包裝不是在UWP世界的選項。
  • 反向的P/Invoke是不是一種選擇,因爲主機應用程序是C++
  • Windows運行時組件也需要一種從C#代碼, 回調,但它可以在C++代碼只被實例化。

有什麼建議嗎?

P.S.
我不能有「C#代理應用程序」,我的應用程序類型爲C++/cx。

+0

爲什麼不能從C++/CX? – IInspectable

+0

我可以將classlib引用添加到C++應用程序,但它不會影響任何內容。我沒有看到classlib命名空間和類。但是,它們是公開的。可能是我錯過了一些明顯的東西? – Ingerdev

+1

[在C#和Visual Basic中創建Windows運行時組件](https://msdn.microsoft.com/en-us/library/windows/apps/br230301.aspx) –

回答

1

Standart uwp c#classlibrary對於C++/cx是不可見的。
應該創建代理庫「windows運行時組件」並將其添加到C++類中。

0

對於如何做一個很好的例子,看看ChakraBridge C++/CX項目如何應對本地Windows用於: https://github.com/Microsoft/react-native-windows/tree/master/ReactWindows/ChakraBridge

C#調用到C++/CX,然後退了出去,完全透明,生活直到CLR允許的跨語言工作流程。 React Native Windows中還有一個拉取請求,它顯示瞭如何添加一些允許共享C++/CX和C++/CLI代碼的編譯時指令: https://github.com/Microsoft/react-native-windows/pull/769/