| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2087 人关注过本帖
标题:我照书写的最简单窗口程序编译连接没错,但运行是未响应
只看楼主 加入收藏
liangkenan
Rank: 1
等 级:新手上路
帖 子:79
专家分:7
注 册:2011-9-16
结帖率:100%
收藏
 问题点数:0 回复次数:6 
我照书写的最简单窗口程序编译连接没错,但运行是未响应
代码如下::::
#include <windows.h>
LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
    char szClassName[]="MainWClass";
    WNDCLASSEX wndclass;
    //用描述窗口的参数填充WNDCLASSEX结构
    wndclass.cbSize=sizeof(wndclass);
    wndclass.style=CS_HREDRAW|CS_VREDRAW;
    wndclass.lpfnWndProc=MainWndProc;
    wndclass.cbClsExtra=0;
    wndclass.cbWndExtra=0;
    wndclass.hInstance=hInstance;
    wndclass.hIcon=::LoadIcon(NULL,IDI_APPLICATION);
    wndclass.hCursor=::LoadCursor(NULL,IDC_ARROW);
    wndclass.hbrBackground=(HBRUSH)::GetStockObject(WHITE_BRUSH);
    wndclass.lpszClassName=NULL;
    wndclass.lpszClassName=szClassName;
    wndclass.hIconSm=NULL;
    //注册这个窗口类
    ::RegisterClassEx(&wndclass);
    //创建主窗口
    HWND hwnd=::CreateWindowEx(0,
        szClassName,
        "adfsgdfgtrsfadsfae",
        WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        NULL,
        NULL,
        hInstance,
        NULL);
    if(hwnd==NULL)
    {
        ::MessageBox(NULL,"nihao","wrong",MB_OK);
        return -1;
    }
    //显示窗口,刷新窗口客户区
    ::ShowWindow(hwnd,nCmdShow);
    ::UpdateWindow(hwnd);
    //从消息队列中取出消息,交给窗口函数处理,直到GetMessage返回FALSE,结束消息循环
    MSG msg;
    while(::GetMessage(&msg,NULL,0,0))
    {
        //转化键盘消息
        ::TranslateMessage(&msg);
        //将消息发送到相应的窗口函数
        ::DispatchMessage(&msg);
    }
    //当GetMssage返回FALSE时程序结束
    return msg.wParam;
}
LRESULT CALLBACK MainWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM IParam)
{
    char szText[]="i don't like it";
    switch(message)
    {
    case WM_PAINT://窗口客户区需要重画
        {
            HDC hdc;
            PAINTSTRUCT ps;
            //使无效的客户区变有效,并取得设备环境句柄
            hdc=::BeginPaint(hwnd,&ps);
            //显示文字
            ::TextOut(hdc,10,10,szText,strlen(szText));
            ::EndPaint(hwnd,&ps);
            return 0;
        }
    case WM_DESTROY://正在销毁窗口
        //向消息队列投递一个WM_QUIT消息,促使GetMessage函数返回0.结束消息循环
        ::PostQuitMessage(0);
        return 0;
    }
    //将我们不处理的消息交给系统做默认处理
    return ::DefWindowProc(hwnd,message,wParam,IParam);
}


运行后出现停止工作如下
问题签名:
  问题事件名称:    APPCRASH
  应用程序名:    04win32demo.exe
  应用程序版本:    0.0.0.0
  应用程序时间戳:    4efbc07d
  故障模块名称:    USER32.dll
  故障模块版本:    6.1.7601.17514
  故障模块时间戳:    4ce7ba26
  异常代码:    c0000005
  异常偏移:    0000c491
  OS 版本:    6.1.7601.2.1.0.256.1
  区域设置 ID:    2052
  其他信息 1:    ba35
  其他信息 2:    ba35e151c71b2e29d63291f2012ada1f
  其他信息 3:    9185
  其他信息 4:    91857e02edbb47ffe375444c58ff3089

这代码是我亲手写的,写了半个小时居然不对。。。。。求解释啊啊啊~
搜索更多相关主题的帖子: include 
2011-12-29 09:25
liangkenan
Rank: 1
等 级:新手上路
帖 子:79
专家分:7
注 册:2011-9-16
收藏
得分:0 
我用WIN7系统,VC6.0环境
2011-12-29 09:27
liangkenan
Rank: 1
等 级:新手上路
帖 子:79
专家分:7
注 册:2011-9-16
收藏
得分:0 
刚才调试的时候在注册窗口类时出现这样的话::0x775cc491 处有未经处理的异常: 0xC0000005: 读取位置 0xcccccccc 时发生访问冲突
2011-12-29 09:32
liangkenan
Rank: 1
等 级:新手上路
帖 子:79
专家分:7
注 册:2011-9-16
收藏
得分:0 
就是在注册窗口类::RegisterClassEx(&wndclass);出错,到底哪错了??
2011-12-29 09:52
liangkenan
Rank: 1
等 级:新手上路
帖 子:79
专家分:7
注 册:2011-9-16
收藏
得分:0 
我知道哪错了
2011-12-29 12:09
CrystalFan
Rank: 8Rank: 8
来 自:江苏南京
等 级:蝙蝠侠
帖 子:187
专家分:802
注 册:2009-7-30
收藏
得分:0 
//注册这个窗口类
    ::RegisterClassEx(&wndclass);
之前加上:

wndclass.lpszMenuName = "???";
2011-12-29 22:29
BianChengNan
Rank: 8Rank: 8
等 级:贵宾
威 望:13
帖 子:302
专家分:972
注 册:2011-11-30
收藏
得分:0 
以下是引用liangkenan在2011-12-29 12:09:24的发言:

我知道哪错了
请楼主贴明原因,难道是窗口类名的问题???不解,没环境调试

我的群:149544757 C/C++/Assembly 喜欢交流的朋友进,进群请写消息
2011-12-30 09:34
快速回复:我照书写的最简单窗口程序编译连接没错,但运行是未响应
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017485 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved