Windows(电话)运行时C#和C ++之间的组件流

时间:2013-06-25 08:36:28

标签: c# c++ windows-phone-8 windows-runtime windows-phone

我想在我的C#Windows Phone Gui应用程序中嵌入现有的C ++控制台应用程序。我已经设法将C ++控制台应用程序转换为Windows(电话)运行时组件,允许我从C#调用它。我想知道的是将原始控制台输出路由到我已经为类似应用程序创建的C#XAML控制台。我的问题是C#控制台使用从“Stream”派生的类,它使用“Write”函数用新文本更新自己。

我很遗憾现在已经知道如何为我的目的创建一个可供C#和C ++使用的流。我搜索过但找不到合适的例子。

如果它有所不同,则不必从正常的控制台输出中捕获输出,因为C ++应用程序通过名为“log”的函数将其所有输出写入控制台。

1 个答案:

答案 0 :(得分:0)

您需要为C ++提供一个C ++ log函数可以使用的.NET回调。

  1. 您应该在其中使用log函数实现WinRT界面(例如ILog)。
  2. 确保您创建了一个实现此接口的C#类,并写入您的模拟控制台。
  3. 作为应用程序在.NET中启动的一部分,创建此类的实例,并通过WinRT将其作为ILog对象传递给C ++。
  4. 在C ++中保留此界面的副本,并在C ++ log函数中使用它。