Stack around the variable 'info' was corrupted.
在DEBUG就会Stack around the variable 'info' was corrupted.
求解
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
//static BITMAPINFO info;
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// 分析菜单选择:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
{
//
//HDC hdcScreen = CreateDC(_T("DISPLAY"), NULL, NULL, NULL);
HDC hdcScreen = GetDC(NULL);
HDC hdc = GetDC(hWnd);
//一个memory dc和一个bitmap(ddb)
HDC hCompatibleDC = CreateCompatibleDC(hdcScreen);
HBITMAP hBitMap = CreateCompatibleBitmap(hdcScreen, GetDeviceCaps(hdcScreen, HORZRES), GetDeviceCaps(hdcScreen, VERTRES));
::SelectObject(hCompatibleDC, hBitMap);
//拷贝surface的数据到bitmap里
::BitBlt(hCompatibleDC, 0, 0, GetDeviceCaps(hdcScreen, HORZRES), GetDeviceCaps(hdcScreen, VERTRES), hdcScreen, 0, 0, SRCCOPY);
//ddb->dib
BITMAPINFO info;
::memset(&info, 0, sizeof(info));
info.bmiHeader.biBitCount = 4;
info.bmiHeader.biSize = sizeof(info.bmiHeader);
info.bmiHeader.biPlanes = 1;
info.bmiHeader.biCompression = BI_RGB;
info.bmiHeader.biWidth = GetDeviceCaps(hdcScreen, HORZRES);
info.bmiHeader.biHeight = GetDeviceCaps(hdcScreen, VERTRES);
char *buff = new char[GetDeviceCaps(hdcScreen, HORZRES) * GetDeviceCaps(hdcScreen, VERTRES) * 3];
if(!GetDIBits(hCompatibleDC, hBitMap, 0, GetDeviceCaps(hdcScreen, VERTRES), buff, &info, DIB_PAL_COLORS))
::MessageBox(hWnd, NULL, NULL, MB_OK);;
//dib->surface
SetDIBitsToDevice(hdc, 0, 0, GetDeviceCaps(hdcScreen, HORZRES), GetDeviceCaps(hdcScreen, VERTRES), 0, 0, 0, GetDeviceCaps(hdcScreen, VERTRES), buff, &info, DIB_PAL_COLORS);
/* */
//释放
delete []buff;
buff = 0;
::DeleteDC(hCompatibleDC);
::DeleteObject(hBitMap);
ReleaseDC(hWnd, hdc);
ReleaseDC(NULL, hdcScreen);
//DeleteDC(hdcScreen);
}//DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 在此添加任意绘图代码...
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
相关推荐
Android studio 出现错误Run with --stacktrace option to get the stack trace. Run with --info or --debu
主要介绍了 Android studio 出现错误Run with --stacktrace option to get the stack trace. Run with --info or --debu的相关资料,需要的朋友可以参考下
【信息科学与工程学】计算机科学与自动化 第二百三十三篇 凤凰架构02
① Firecracker 为每个 microVM 提供极简设备模型:virtio-net, virtio-blk, serial console。:① BB84:Alice 随机选择基矢(+ 或 ×)发送单光子,Bob 随机测量基矢,比对后保留一致位的子集作为原始密钥。:密度 1 EB/mm³;:① Parquet 文件:行组(Row Group)→ 列块(Column Chunk)→ 页(Page)。
Android studio 出现错误Run with –stacktrace option to get the stack trace. Run with –info or –debu
Android studio Run with –stacktrace option to get the stack trace. Run with –info or –debu 提示信息 Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 其实是让你去查看更多的log信息。找到你项目的根目录,比如你的项目是MyApplication,在dos命令下进入该目录执行 gradlew compileDebug --stac
thread_info 与内核栈 stack 关系.pdf
thread_info 结构被称为迷你进程描述符,是因为在这个结构中并没有 直接包含与进程相关的字段,而是通过 task 字段指向具体某个进程描 述符。通常这块内存区域的大小是 8KB,也就是两个页的大小(有时候 也使用一个页来存储,即 4KB)。一个进程的内核栈和 thread_info 结构之间的逻辑关系如下图所示:
stack-setup-info-gen:使用setup-info生成stack.yaml
该项目提供了一个可执行文件,给定了ghc版本字符串,该可执行文件可以生成stack.yaml,使您可以使用stack安装该版本的GHC。 从项目根目录开始的用法示例: stack run ghc-8.6.1-beta1 如果存储库中不存在输入文件,则可以使用--fetch-inputs标志。 stack run -- ghc-8.6.5 --fetch-inputs 如果脚本不知道如何“发现ghc版本”,请以正确的方式实施discoverDateVer ,或手动添加翻译。 对于某些ghc版本,此脚本的输出包含在此回购中的output /文件夹下。 该项目仍处于试验阶段。 长时间保持一致时要谨慎。


图形处理/算法
