Freigeben über


C28623

Warnung C28623: Nicht signierte Umwandlung von GetMessagePos()-Koordinaten. Verwenden Sie GET_X_LPARAM/GET_Y_LPARAM anstelle von LOWORD/HIWORD.

Systeme mit mehreren Monitoren können negative x-Koordinaten und y-Koordinaten aufweisen. Auf solchen Systemen gibt GetMessagePos daher möglicherweise negative Werte zurück. Da LOWORD und HIWORD die Koordinaten jedoch als nicht signierte Mengen behandeln, sollten sie nicht verwendet werden.

Beispiel

PREfast meldet die Warnung für das folgende Beispiel.

DWORD dw = GetMessagePos();
POINT ppt;

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

Im folgenden Beispiel wird der Fehler vermieden.

DWORD dw = GetMessagePos();
POINT ppt;

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