Потихоньку погружаюсь в программирование на WinAPI, и некоторые макросы меня немного озадачивают. Среди них макрос LOWORD(I).
Не могли бы Вы объяснить, что происходит в строке ниже?)
#define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff))
Делает ровно то, о чём и говорит его название - возвращает 2 младших байта.
Например:
DWORD l = 0x11223344;
WORD w = LOWORD(l); // w = 0x3344
Вы инициализируете макрос LOWORD, то есть, если в функции main у вас есть LOWORD(L), то у вас будет выводится число, которое считается по этой "формуле": ((WORD)(((DWORD_PTR)(L)) & 0xffff)).
Что делает эта формула?
1) Возвращает первые два младших байта числа L: ((DWORD_PTR)(l)) & 0xffff)
2) Явно приводит это все к типу WORD: ((WORD)(((DWORD_PTR)(L)) & 0xffff))
Вот ссылка на документацию: MSDN
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости