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


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);