刚开始用DirectX开发,代码如下:
if ( DirectDrawCreate( NULL, &m_lpDD, NULL ) != DD_OK ) return FALSE;
if ( m_lpDD->SetCooperativeLevel(HWND(GetActiveWindow()),DDSCL_NORMAL) != DD_OK)
return FALSE;//设置控制程度和显示模式
DDSURFACEDESC ddsd; //页面描述
//填充主页面信息
ZeroMemory(&ddsd, sizeof(ddsd));
ddsd.dwSize = sizeof( ddsd );
ddsd.dwFlags = DDSD_CAPS ;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE; if ( m_lpDD->CreateSurface(&ddsd,&m_lpDDSPrimary, NULL ) != DD_OK)
return FALSE;
ZeroMemory(&ddsd, sizeof(ddsd));
ddsd.dwSize=sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH | DDSD_PIXELFORMAT; ddsd.ddsCaps.dwCaps=DDSCAPS_OVERLAY | DDSCAPS_VIDEOMMEMORY;
ddsd.dwHeight=500; 
ddsd.dwWidth=800;
HRESULT tempHRESULT;
if (m_lpDD->CreateSurface(&ddsd,&m_lpDDSOverlay,NULL)  != DD_OK)
return FALSE;这段代码在有的计算机上就运行正确,而在有的计算机上在第二个createsurface后返回不是DD_OK,请问高手这是什么原因?