GetHBITMAP утечка памяти

110
07 октября 2019, 04:40

Почему здесь происходит утечка памяти?

    HBITMAP hBitmap;
    myBitmap.GetHBITMAP(0xFFF, &hBitmap);
    SendMessageW(hLogo, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hBitmap);
    UpdateWindow(windowHandle);
    DeleteObject(hBitmap);
Answer 1

Тут не только утечка, но и освобождение ресурса, который используется. Потому что STM_SETIMAGE не копирует переданный битмап, и возвращает дескриптор предыдущего битмапа. Клиент обязан следить, чтобы установленный битмап оставался валидным, и отвечает за уничтожение ранее установленного битмапа после его замены.

READ ALSO
main.cpp:10:24: error: cannot convert ‘’ to ‘std::string** {aka std::basic_string**}’ in assignment [закрыт]

main.cpp:10:24: error: cannot convert ‘’ to ‘std::string** {aka std::basic_string**}’ in assignment [закрыт]

Указатели - это не массивыНельзя просто положить набор элементов "в указатель" - сначала вам нужно выделить память через new

145
Как в CMAKE добавить параметр -fvisibility=default?

Как в CMAKE добавить параметр -fvisibility=default?

Пытаюсь собрать qtwebkit из исходников и получить доступ к WebCoreТ

117
Boost Asio. Очередь обработчиков

Boost Asio. Очередь обработчиков

Есть, например, этот код:

130
Маппинг аргументов командной строки JAVA

Маппинг аргументов командной строки JAVA

Есть некий framework, в котором парсится командная срокаСтрока имеет вид: --file=simple

117