Поделиться через


C28623

предупреждение C28623: неподписанный приведение координат GetMessagePos(). Используйте GET_X_LPARAM/GET_Y_LPARAM вместо LOWORD/HIWORD

Системы с несколькими мониторами могут иметь отрицательные координаты x и координаты y. В таких системах GetMessagePos поэтому могут возвращать отрицательные значения. Тем не менее, поскольку LOWORD и HIWORD рассматривать координаты как неподписанные количества, их не следует использовать.

Пример

PREfast сообщает предупреждение для следующего примера.

DWORD dw = GetMessagePos();
POINT ppt;

ppt.x = LOWORD(dw);
ppt.y = HIWORD(dw);

В следующем примере не возникает ошибка.

DWORD dw = GetMessagePos();
POINT ppt;

ppt.x = GET_X_LPARAM(dw);
ppt.y = GET_Y_LPARAM(dw);