0x75B48987 (user32.dll) (Win32Project1.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0xCCCCC

m0_37704547 2017-04-04 09:34:10
初学windows程序设计,完全按照书上打的程序,就是显示一个基本的窗口。
程序没提示错误,就是一直显示“0x75B48987 (user32.dll) (Win32Project1.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0xCCCCCCCC 时发[/code]生访问冲突。”
菜鸟求助啊



#include <Windows.h>
#include<tchar.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //窗口函数说明
//---------以下是入口函数的代码--------
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wcex;
HWND hWnd;
MSG msg;
TCHAR szWindowClass[] = L"窗口示例"; //窗口类名
TCHAR szTitle[] = L"My Windows"; //窗口标题名

//----------以下初始化窗口类-------------
wcex.cbSize = sizeof(WNDCLASSEX); //窗口类的大小
wcex.style = 0; //窗口类型为默认类型
wcex.lpfnWndProc = WndProc; //窗口处理函数为WndProc
wcex.cbClsExtra = 0; //窗口类无扩展
wcex.cbWndExtra = 0; //窗口实例无扩展
wcex.hInstance = hInstance; //当前实例句柄
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
//窗口的图标为默认图标
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
//窗口采用箭头光标
wcex.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //窗口背景为白色
wcex.lpszClassName = szWindowClass; //窗口类名为"窗口示例"
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
//窗口的小图标为默认图标

//-----------以下进行窗口类的注册--------
if (!RegisterClassEx(&wcex)) //如果注册失败则发出警告
{
MessageBox(NULL, _T("窗口类注册失败!"), _T("窗口注册"), NULL);
return 1;
}

//-----------以下为创建窗口-------------
hWnd = CreateWindowW(
szWindowClass, //窗口类名
szTitle, //窗口实例的标题名
WS_OVERLAPPEDWINDOW, //窗口的风格
CW_USEDEFAULT, CW_USEDEFAULT, //窗口的左上角坐标为默认值
CW_USEDEFAULT, CW_USEDEFAULT, //窗口的高和宽为默认值
NULL, //此窗口无父窗口
NULL, //此窗口无主菜单
hInstance, //创建此窗口应用程序的当前句柄
NULL //不使用该值
);
if (!hWnd) //如果创建窗口失败则发出警告
{
MessageBox(NULL, L"创建窗口失败!", _T("创建窗口"), NULL);
return 1;
}
ShowWindow(hWnd, nCmdShow); //显示窗口
UpdateWindow(hWnd); //绘制用户区
while (GetMessage(&msg, NULL, 0, 0)) //消息循环
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}

return(int)msg.wParam; //程序终止时将信息返回系统
}

//---------------以下是窗口函数的代码-------------
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_DESTROY:
PostQuitMessage(0); //调用PostQuitMessage发出WN_PQUIT消息
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
//默认时采用系统消息默认处理函数
break;
}
return 0;
}
...全文
1141 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_15984549 2019-05-13
  • 打赏
  • 举报
回复


引用 7 楼 棉猴 的回复:
你的代码中,对WNDCLASSEX的成员变量指定值时,没有对lpszMenuName赋值。可以在
if (!RegisterClassEx(&wcex)) 

代码之前加入如下代码
wcex.lpszMenuName = NULL;

lpszMenuName指定了窗口菜单的名称,如果将该变量设置为NULL,则表示创建的窗口没有默认菜单。
VS2010的运行的效果如图

这个可以解决问题 亲测
棉猴 2019-01-14
  • 打赏
  • 举报
回复
你的代码中,对WNDCLASSEX的成员变量指定值时,没有对lpszMenuName赋值。可以在
if (!RegisterClassEx(&wcex)) 

代码之前加入如下代码
wcex.lpszMenuName = NULL;

lpszMenuName指定了窗口菜单的名称,如果将该变量设置为NULL,则表示创建的窗口没有默认菜单。
VS2010的运行的效果如图
ZxPiano 2019-01-13
  • 打赏
  • 举报
回复
你好,在你的WinMain加一句“wcex.lpszMenuName = NULL; ”试一下吧。
ooolinux 2017-04-05
  • 打赏
  • 举报
回复
引用 3 楼 u010165006 的回复:
不要学这个了,叼用没有, 可以学下C++ Builder
图形用户界面可以学习C++ Builder,架构先进,入门比较容易。 C++ Builder的较新版本——RAD Studio XE3以上版本添加对iOS和Android的支持工具包,让开发者编写的Delphi/C++应用可以同时在Windows、OS X、iOS和Android平台上运行。现在最新版本是RAD Studio 10.1。 仅供参考: 初学者学习C++ Builder第一个程序(模拟聊天室),经典! http://blog.163.com/tab_98/blog/static/11924097201693033057497/ C++ Builder绘图示例(模拟时钟) http://blog.163.com/tab_98/blog/static/11924097201611324819376/ 从C语言的菜单界面管理系统到C++ Builder的图形用户界面,一个简单的电话簿Demo例子 http://blog.163.com/tab_98/blog/static/1192409720158673337998/ C++ Builder写的《ZEC 纸牌游戏21点》 http://blog.163.com/tab_98/blog/static/119240972016115113039304/ C++ Builder写的《ZEC 僵尸版打地鼠》 http://blog.163.com/tab_98/blog/static/11924097201601084117748/ C++ Builder写的《ZEC 推箱子》 http://blog.163.com/tab_98/blog/static/11924097201612011839642/ 书籍推荐: 《C++Builder 6程序设计教程(第二版)》 (陆卫忠,刘文亮 等编著 /2011-04-01 /科学出版社) 《C++Builder6编程实例精解》(赵明现),PDF,是数字版的,非扫描版的,里面还有一个俄罗斯方块游戏的完整实现。 《精彩C++Builder 6程序设计》(台湾 吴逸贤),里面有10几个简单小游戏的实现,可以自己看懂以后再重写,才是自己掌握的。 《C++ Builder 5高级编程实例精解》(刘滨 编著)都是较大的实用的程序。
ooolinux 2017-04-05
  • 打赏
  • 举报
回复
不要学这个了,叼用没有, 可以学下C++ Builder
赵4老师 2017-04-05
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
FD_2013 2017-04-04
  • 打赏
  • 举报
回复
不要学这个了,叼用没有, 学下QT吧

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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