Доступ к CoreWindow из компонента времени выполнения Windows Phone 8.1

Я пытаюсь получить доступ к CoreWindow из компонента времени выполнения Windows Phone 8.1 C ++. Компонент должен реагировать на некоторые события, запускаемые CoreWindow. У меня есть следующий код.

IAsyncAction^ MyClass::RegisterCoreWindowVisibilityChanged()
{
return CoreApplication::MainView->CoreWindow->Dispatcher->RunAsync(CoreDispatcherPriority::High,
ref new DispatchedHandler(
[this]
{
auto eventHandler = ref new TypedEventHandler<CoreWindow^, VisibilityChangedEventArgs^>(this, &MyClass::OnCoreWindowVisibilityChanged);
Window::Current->CoreWindow->VisibilityChanged += eventHandler;
}
));
}

Это прекрасно работает, когда приложение, использующее компонент, является универсальным приложением, но завершается ошибкой в ​​приложении silverlight с исключением нарушения прав доступа.

0xC0000005: Access violation reading location 0x00000000.

По-видимому Windows::Current возвращает ноль в приложении Silverlight. Есть ли способ сделать это так, чтобы он работал как в Silverlight, так и в приложении Windows Store?

0

Решение

Этот объект доступен только в универсальном приложении (как документированный).

Вам нужно будет либо условно компилировать, либо подумать о переходе на универсальное приложение как для настольного компьютера, так и для телефона.

1

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


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