|

楼主 |
发表于 2004-8-9 19:53:00
|
显示全部楼层
Re:DDraw初始化过程出错的原因
int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd)
{
MSG msg;
//初始化窗口
hWnd = InitWindow(hInstance,nShowCmd);
if( hWnd = NULL )
return FALSE;
//初始化directdraw
if(InitDDraw() == FALSE )
{
MessageBox(GetActiveWindow(),"初始化DirectDraw过程中出错!","错误",MB_OK);
FreeDDraw();
return FALSE;
}
while(1)
{
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (msg.wParam );
}
-------------------------------------------------------------------------------------------
//初始化directdraw函数
BOOL InitDDraw()
{
DWORD dwFlags;
DDSURFACEDESC ddsd;
HRESULT ddrval = DD_OK;
DirectDrawCreate(NULL,&lpdd,NULL);
dwFlags = DDSCL_NORMAL;
lpdd->SetCooperativeLevel (hWnd,dwFlags);
//lpdd->SetDisplayMode (640,480,16);
//创建主页面
ZeroMemory(&ddsd,sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS|DDSD_BACKBUFFERCOUNT;
//ddsd.dwHeight = ;
//ddsd.dwWidth = 480;
ddsd.dwBackBufferCount = 1;
ddsd.ddsCaps .dwCaps = DDSCAPS_PRIMARYSURFACE;
ddrval = lpdd->CreateSurface (&ddsd,&lpDDPrimary,NULL);
if( ddrval != DD_OK )
return FALSE;
……………………
……………………………………………………………………
程序编译没有错误,运行时就出我程序中指定的message box 报告错误。
谢谢了
|
|