|
8驿站币
本帖最后由 ww1724 于 2019-2-26 20:26 编辑
错误是creatwindow无法读取内存,但是getlasterror得到0说明没错误,代码如下求助各位大佬
#include<windows.h>
LRESULT CALLBACK windowproc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE Hinstance ,LPSTR lpCmdLine , int cmdshow ) {
const WCHAR *class_name = L"simple class name";
unsigned s;
WNDCLASS wndclass = {NULL};
wndclass.lpfnWndProc = windowproc;
wndclass.hInstance = hinstance;
wndclass.lpszClassName = class_name;
RegisterClass(&wndclass);
HWND windowhwnd = CreateWindowEx(1, class_name, L"first windows window", WS_TILEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hinstance, NULL);
{
s = GetLastError();
MessageBox(NULL, L"创建窗口失败", L"错误提示", MB_OK);
}
ShowWindow(windowhwnd, cmdshow);
return 0;
}
LRESULT CALLBACK windowproc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
return LRESULT();
}
|
-
变量
最佳答案
查看完整内容
楼主这个代码范了几个致命的错误啊:
1、HWND windowhwnd = CreateWindowEx(...); 之后,并没有加 if 判断啊,直接就用一个大括号里面马上就 GetLastError 和 MessageBox 了,所以不管 CreateWindowEx 返回的 windowhwnd 是否成功,都会走 MessageBox;
2、窗口函数中直接 return LRESULT(); 了,应该 return DefWindowProc(hwnd, uMsg, wParam, lParam); 才对!
3、消息循环哪去了?没有消息循环,窗口即使被创建出来了也 ...
上一篇: PE内容 向代码空白区加代码时出现00000005错误下一篇: 【伸手】求一个Windbg的安装包(网上下了好几个垃圾软件)
|