none
为什么我在执行Windows::System::Display::DisplayRequest::RequestRelease()时出现异常? RRS feed

  • 问题

  • 为什么我在执行Windows::System::Display::DisplayRequest::RequestRelease()时出现异常?

    异常:

    0x76F91D4D 处(位于 实验.exe 中)最可能的异常: Microsoft C++ 异常: Platform::COMException ^,位于内存位置 0x03FEDD04 处。 HRESULT:0x80070216 算术结果超过 32 位。
    
    WinRT 信息: 算术结果超过 32 位。
    
    堆栈跟踪:
    [外部代码]
    实验.exe!实验::Page6::Pause(Platform::Object ^ sender, Windows::UI::Xaml::RoutedEventArgs ^ e) 行 131
    [外部代码]
    
    如有适用于此异常的处理程序,该程序便可安全地继续运行。

    2014年5月27日 5:22

答案

  • 你好,前后代码是什么?

    你需要先进行一次判断,是否可以被Release,然后再进行Release。

    C++代码我这没有,不过有个C#的,差不多是一样的,你看一下

    public void StopVideoPlayback()
    {
        // Insert your own code here to stop the video.
        if (dispRequest != null) //此处判断是否可以被RequestRelease
        {
            
            // Deactivate the display request and set the var to null.
            dispRequest.RequestRelease();
            dispRequest = null;
            
            rootPage.NotifyUser("Display request released",
                                NotifyType.StatusMessage);
            
        }
    }
    
    

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    2014年5月28日 3:29
    版主

全部回复

  • 你好,前后代码是什么?

    你需要先进行一次判断,是否可以被Release,然后再进行Release。

    C++代码我这没有,不过有个C#的,差不多是一样的,你看一下

    public void StopVideoPlayback()
    {
        // Insert your own code here to stop the video.
        if (dispRequest != null) //此处判断是否可以被RequestRelease
        {
            
            // Deactivate the display request and set the var to null.
            dispRequest.RequestRelease();
            dispRequest = null;
            
            rootPage.NotifyUser("Display request released",
                                NotifyType.StatusMessage);
            
        }
    }
    
    

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    2014年5月28日 3:29
    版主
  • 不成功,运行的时候dispRequest并不是C++中的nullptr,检测也不成功。

    代码:

    Windows::System::Display::DisplayRequest^ dispRequest = nullptr;//定义,位于全局
    //函数中
    	dispRequest = ref new Windows::System::Display::DisplayRequest;
    	if (dispRequest != nullptr){
    		dispRequest->RequestRelease();
    	}


    2014年5月28日 13:14