0

Stack around the variable "rc" was corruptedこのコードをテストしようとするとエラーが発生しました (返された coord を使用してそこにマウスを移動します) 。
以下のコードを参照してください。

int TestPluginAPI::getmidX()
{
//RECT rect; 
HWND hWnd;
hWnd = getBrowserHwnd();
RECT rc;
if(GetClientRect(hWnd, &rc))  // get client coords 
{
MapWindowPoints(hWnd, NULL, reinterpret_cast<POINT*>(&rc.left), 2); // convert top-left x
MapWindowPoints(hWnd, NULL, reinterpret_cast<POINT*>(&rc.right), 2); // convert bottom-right x
MapWindowPoints(hWnd, NULL, reinterpret_cast<POINT*>(&rc.top), 2); // convert top-left y
MapWindowPoints(hWnd, NULL, reinterpret_cast<POINT*>(&rc.bottom), 2); // convert bottom-right y
return rc.left;
}
else {return 0;}
}  

教えてください、何が問題なのですか?

4

1 に答える 1

3

はい、これだけのはずです

if(GetClientRect(hWnd, &rc))  // get client coords 
{
    MapWindowPoints(hWnd, NULL, reinterpret_cast<POINT*>(&rc), 2);
    return rc.left;
}

長方形は 2 つの点 (左上と右下) です。したがって、MapWindowPoints を呼び出す必要があるのは、カウント 2 で 1 回だけです。

于 2013-04-03T22:20:21.510 に答える