2012-06-09 2 views
-1

Winapi EndPaint() 함수가 벨로우즈에 걸려서 그 중 일부가 wm_copydata를 보냈지 만, 그 동안에는 ocassion에 "wm_copydata, variable endpaint_text 주위에 스택이 손상되었습니다 ..." 푹 빠진 앱의 충돌.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; 

} 
+2

왜 cds.cbData를 sizeof (paint_dc)로 설정하고 있습니까? –

+0

예,하지만 오타가 있습니다. – Marko29

답변

0

그것은 넘쳐 있었다 wsprint, didnt가 언급 손상 VAR에 대해 아무것도 함께 할 수 있습니다.

관련 문제