生成可执行文件运行中异常自动关闭[求助]
/*-----------------------代码如下:------------------*/
#include <windows.h>
LRESULT CALLBACK WindowProc (HWND,UINT,WPARAM,LPARAM);
int WINAPI WinMain (HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPSTR szCmdLine,int iCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
static TCHAR szAppName[]=TEXT("HelloWin");
wndclass.style=CS_HREDRAW;
wndclass.hInstance=hInstance;
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=szAppName;
wndclass.lpfnWndProc=WindowProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hbrBackground=(HBRUSH) GetStockObject (GRAY_BRUSH);
if (!RegisterClass(&wndclass))
{
MessageBeep(0);
return 0;
}
hwnd=CreateWindow(szAppName,TEXT("应用程序"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,iCmdShow);
UpdateWindow(hwnd);
while (hwnd&&GetMessage(&msg,hwnd,-1,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (int) msg.wParam;
}
LRESULT CALLBACK WindowProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lparam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,message,wParam,lparam);
}
return 0;
}
/*---------------------------------------------------
我用的VC6。
调试中,编译链接都正常。可当执行生成的可执行文件时,程序会自动关闭。
所知道的一点有关信息是:在GetMessage函数的wMsgFilterMin[即第三个参数]设为0时,
不会自动关闭,但是时常存在“在系统的任务管理应应用程序页面关闭程序,而进程页面显示程序并未关闭”的问题。
该参数设为-1,则不出现上述问题,却又会立即自动关闭。
我对调试的watch和GetLast用的不熟,似乎显示“某个句柄无效?”。
真的弄不明白,请高手指点一二,谢谢啦。
^_^
-----------------------------------------------------*/