获取离屏表面的dc时返回DDERR_CANTCREATEDC错误是什么原因????

解决方案 »

  1.   

    你是不是没有释放以前的DC,创建的DC太多了
      

  2.   

        ZeroMemory(&ddsd, sizeof(ddsd));   
        ddsd.dwSize = sizeof(ddsd);   
        ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY;  //DDSCAPS_OVERLAY   DDSCAPS_OFFSCREENPLAIN; 
        ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT; 
        ddsd.dwWidth = 352;   
        ddsd.dwHeight = 288;   
        ddsd.ddpfPixelFormat.dwSize = sizeof(DDPIXELFORMAT);   
        ddsd.ddpfPixelFormat.dwFlags = DDPF_FOURCC | DDPF_YUV;
        ddsd.ddpfPixelFormat.dwFourCC = MAKEFOURCC('Y','V','1','2');   
        ddsd.ddpfPixelFormat.dwYUVBitCount = 8;   
        if (FAILED(hr = m_pDD->CreateSurface(&ddsd, &m_pddsBackBuffer, NULL)) )   
             return;
       好像显示yuv数据的时候就不能getdc,提示DDERR_CANTCREATEDC错误,而rgb就可以,这是什么原因啊