Поток компонентов среды выполнения Windows (телефон) между C # и переполнением стека

Я хочу встроить существующее консольное приложение C ++ в мое приложение C # Windows Phone Gui. Мне уже удалось преобразовать консольное приложение C ++ в компонент времени выполнения Windows (Phone), что позволяет мне вызывать его из C #. Что я хочу знать, так это перенаправить исходный вывод консоли на консоль C # XAML, которую я уже создал для аналогичного приложения. Моя проблема в том, что консоль C # работает с классом, производным от «Stream», который использует функцию «Write» для обновления себя новым текстом.

У меня, к сожалению, теперь есть идея, как мне создать поток, который может использоваться C # и C ++ для моих целей. Я искал вокруг, но не смог найти подходящий пример.

Если это имеет значение, вывод не должен быть захвачен из нормального вывода консоли, потому что приложение C ++ записывает весь свой вывод в консоль через функцию, называемую «log».

0

Решение

Вам нужно будет дать C ++ обратный вызов .NET, который ваш C ++ log Функция может использовать.

  1. Вы должны реализовать интерфейс WinRT с вашим log функция в нем (например, ILog).
  2. Убедитесь, что вы создали класс C #, который реализует этот интерфейс и выполняет запись в вашу имитированную консоль.
  3. Как часть запуска приложения в .NET, создайте экземпляр этого класса и передайте его как ILog Объект к C ++ через WinRT.
  4. Храните копию этого интерфейса в C ++ и используйте его в своем C ++ log функция.
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]