Потребовалось мне внезапно делать снимки экрана, и обнаружилась странная проблема:
строка вида
- Код: Выделить всё
a := Windows.GetDC(любой_HWD);
Я даже обновил, а потом и переустановил Lazarus. Не помогает. Подскажите, куда копать ?
Добавлено спустя 23 часа 34 минуты 28 секунд:
Проблема решена:
64-разрядная функция GetDC возвращает QWord, так что при конвертации к менее емкому типу LongWord совершенно спокойно может возникнуть ошибка. А я втупил и писал
- Код: Выделить всё
var a: Cardinal;
a := Windows.GetDC(0);
правильно делать так:
- Код: Выделить всё
var a: HDC;
a := Windows.GetDC(0);