生成可执行文件运行中异常自动关闭[求助]

qccbcsj 2005-07-14 01:28:11
/*-----------------------代码如下:------------------*/
#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用的不熟,似乎显示“某个句柄无效?”。
真的弄不明白,请高手指点一二,谢谢啦。
^_^
-----------------------------------------------------*/
...全文
177 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qccbcsj 2005-07-16
  • 打赏
  • 举报
回复
晕阿!!
看来不是代码的问题,我看了《Programming Windows程式开发设计指南
》的类似代码,把第三个参数改为-1,运行结果也一样啊。

有没有高手指点一下阿?
qccbcsj 2005-07-15
  • 打赏
  • 举报
回复
为什么句柄无效阿?
有没有人帮我看一下阿,手册看不出什么问题我。
younggle 2005-07-14
  • 打赏
  • 举报
回复
哎,使用VC写WIN32的程序,太浪费精力了。
ShiGang 2005-07-14
  • 打赏
  • 举报
回复
GetMessage的第三個和第四個參數是接收消息的最小值和最大值.
既然這里出現問題了,說明你的窗口接收處理消息時有問題,請檢查相關的函數.
qccbcsj 2005-07-14
  • 打赏
  • 举报
回复
55,高人指点一下阿,我都仔细看了这里所用的大部分函数的说明手册了,
不明白阿
:(
一会我把CreateWindow的参数说明看一下,看有没有重大的问题-----就这个的英文说明太长我没仔细看完。
hasgone 2005-07-14
  • 打赏
  • 举报
回复
你建的是不是Win32 Application?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧