有关DirectX 或Win32 编程的问题
我用vc编的一个Directx游戏程序(win32 Application),在自己的电脑上运行速度正常,
在别人的电脑上反应速度奇慢,而且运行期间整个windows系统都几乎停止响应,请问解决的办法.
程序中两个主要函数如下:
int PASCAL WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MSG msg;
//初始化主窗口
hWnd=InitWindow( hInstance, nCmdShow ) ;
if (hWnd == NULL )
return FALSE;
//初始化DirectDraw环境,并实现DirectDraw功能
if (!InitDDraw())
{
MessageBox(GetActiveWindow(), "初始化DirectDraw过程中出错!请检查你是否正确的安装了DirectX。", "Error", MB_OK );
FreeDDraw();
return FALSE;
}
while(1)
{
if(PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
{
if(!GetMessage(&msg, NULL, 0, 0 )) return msg.wParam;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else if(bActive)Flip();
else WaitMessage();
}
}
LRESULT CALLBACK WinProc( HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam )
{ int x=1;
switch( message )
{
case WM_success:
MessageBox(hWnd,"SUCCESS!!","congratulation",NULL);
if(automap)changefile();
break;
case WM_ACTIVATEAPP:
bActive=wParam;
break;
case WM_KEYDOWN://击键消息
............
break;
case WM_DESTROY://退出消息
FreeDDraw();//释放所有DirectDraw对象
PostQuitMessage( 0 );
break;
}
//调用缺省消息处理过程
if((message!=WM_CLOSE)||(MessageBox(hWnd,"你确认要退出游戏 么?","???",MB_OKCANCEL)==IDOK))
return DefWindowProc(hWnd, message, wParam, lParam);
}