C# .Net Framework 4及更高版本的DirectDraw问题

C# .Net Framework 4及更高版本的DirectDraw问题,c#,video,directshow,directshow.net,C#,Video,Directshow,Directshow.net,我正在从事一个项目,该项目使用FilgraphManager类播放视频。该项目在.Net Framework 3.5中运行正常,但当我将该项目升级到Framework 4或更高版本时,DirectDraw加载该文件时出现了一些问题,使其几乎无法使用。还有其他人遇到过同样的问题吗 图1-.Net Framework 3.5 图2-.Net Framework 4 public bool LoadFile(string sfile, Form parentHandler) {

我正在从事一个项目,该项目使用FilgraphManager类播放视频。该项目在.Net Framework 3.5中运行正常,但当我将该项目升级到Framework 4或更高版本时,DirectDraw加载该文件时出现了一些问题,使其几乎无法使用。还有其他人遇到过同样的问题吗

图1-.Net Framework 3.5

图2-.Net Framework 4

    public bool LoadFile(string sfile, Form parentHandler)
    {
        graphManager.RenderFile(sfile);

        try
        {
            parentHandler.Left = 0;
            parentHandler.Top = 0;

            parentHandler.Width = graphManager.Width;
            parentHandler.Height = graphManager.Height;

            mControl = graphManager;
            mPosition = graphManager;
            mWindow = graphManager;
            mWindow.Owner = parentHandler.Handle.ToInt32();
            mWindow.WindowStyle = WS_CHILD;
            mWindow.SetWindowPosition(parentHandler.ClientRectangle.Left,
                parentHandler.ClientRectangle.Top,
                parentHandler.ClientRectangle.Width,
                parentHandler.ClientRectangle.Height);

            parentHandler.Opacity = 1;
            m_objMediaEvent = graphManager as IMediaEvent;
            m_objMediaEventEx = graphManager as IMediaEventEx;
            m_objMediaEventEx.SetNotifyWindow((int)parentHandler.Handle, WM_GRAPHNOTIFY, 0);
            mPosition = graphManager as IMediaPosition;
            mControl = graphManager as IMediaControl;
            m_objBasicAudio = graphManager as IBasicAudio;
        }
        catch (Exception) { mWindow = null;  return false; }
        finally
        {
            graphManager.Run();
            m_CurrentStatus = MediaStatus.Running;
        }
        return true;
    }

它看起来不像是.NET版本。众所周知,股票H.264解码器在调试器下尝试独立运行时会产生类似的伪影。它也不是DirectDraw(主题)。我注意到,如果我们在Visual Studio中运行此代码,它会产生前面提到的噪音,但是如果我们从外部(bin文件夹)运行相同的应用程序,它可以完美地工作。我不知道为什么。它看起来不像是.NET版本。众所周知,股票H.264解码器在调试器下尝试独立运行时会产生类似的伪影。它也不是DirectDraw(主题)。我注意到,如果我们在Visual Studio中运行此代码,它会产生前面提到的噪音,但是如果我们从外部(bin文件夹)运行相同的应用程序,它可以完美地工作。我不知道为什么。