wm_copydata,变量周围的堆栈endpaint_text已损坏
wm_copydata, stack around variable endpaint_text was corrupted
我在下面钩住了 Winapi EndPaint() 函数,在它里面我发送了一些wm_copydata但与此同时,在 ocassion 上我得到了"wm_copydata,围绕变量的堆栈endpaint_text被损坏了......"挂钩应用程序的崩溃。
BOOL WINAPI Mine_EndPaint(HWND hWnd, const PAINTSTRUCT *lpPaint) {
BOOL result = fpEndPaint(hWnd, lpPaint);
if (hWnd == g_win)
{
if (lpPaint->rcPaint.left == g_12x && lpPaint->rcPaint.top == g_12y)
{
painting = 0;
wchar_t endpaint_text[MAX_PATH] = L"deleting_a";
COPYDATASTRUCT cds;
::ZeroMemory(&cds, sizeof(COPYDATASTRUCT));
cds.cbData = sizeof(paint_dc);
cds.lpData = endpaint_text;
::SendMessageTimeoutW(g_main, WM_COPYDATA, (WPARAM)::GetDesktopWindow(), (LPARAM)&cds, SMTO_ABORTIFHUNG, 1000, 0);
}
else if (lpPaint->rcPaint.left == g_list12x && lpPaint->rcPaint.top == 137)
{
big_painting = 0;
wchar_t endpaint_text[MAX_PATH] = L"deleting_b";
COPYDATASTRUCT cds;
::ZeroMemory(&cds, sizeof(COPYDATASTRUCT));
cds.cbData = sizeof(paint_dc);
cds.lpData = endpaint_text;
::SendMessageTimeoutW(g_main, WM_COPYDATA, (WPARAM)::GetDesktopWindow(), (LPARAM)&cds, SMTO_ABORTIFHUNG, 1000, 0);
}
}
else if (check_d)
{
re_window = NULL;
GetWindowText(hWnd, window_text, MAX_PATH);
if (!wcscmp(window_text, L"Text"))
{
check_d = false;
re_window = hWnd;
wchar_t re_info[MAX_PATH] = L"";
//wcscat(re_info, text);
COPYDATASTRUCT cds;
::ZeroMemory(&cds, sizeof(COPYDATASTRUCT));
cds.dwData = 931;
cds.cbData = sizeof(re_info);
cds.lpData = re_info;
wsprintf(re_info, L"Text='%s', HWND='%X'", d_text, re_window);
::SendMessageTimeoutW(g_main, WM_COPYDATA, (WPARAM)::GetDesktopWindow(), (LPARAM)&cds, SMTO_ABORTIFHUNG, 1000, 0);
}
}
return result;
}
它是溢出的wsprint,与提到的任何损坏的var无关。
相关文章:
- 算法问题:查找从堆栈中弹出的所有序列
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- Visual Studio(或任何其他工具)能否将地址解释为调用堆栈(boost上下文)的开头
- 为什么调用堆栈数组会导致内存泄漏
- gdb错误:Backtrace已停止:上一帧与此帧相同(堆栈已损坏?)
- 在 leetcode 上提交解决方案时出现堆栈缓冲区溢出错误
- 我的 int main() 中出现堆栈溢出错误
- 堆栈和队列是否像C++中的数组一样传递?
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- 为什么 STL 容器适配器堆栈中的 top 返回常量引用?
- 从堆栈分配的原始指针构造智能指针
- 在函数范围内在堆栈上分配的数组在离开函数时是否总是被释放?
- 堆栈中大小变量输入错误 (C++)
- 堆栈问题(平衡表达式问题集)
- C++ 在堆栈中包含多态属性的类对象存储
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- 在 C++ 中使用链表进行堆栈
- 变量周围的堆栈'...'已损坏
- 在 gtest 中初始化堆栈上的引用变量的隔离错误
- C++线程的可用堆栈大小