我试图从Windows Phone 8.1 C ++运行时组件访问CoreWindow。该组件需要对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应用中返回null。有没有办法做到这一点,以便它在Silverlight和Windows商店应用程序中工作?