Почему происходит утечка памяти?
while (true)
{
ULONG_PTR gdiplusToken;
GdiplusStartupInput gdiplusStartupInput;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
GdiplusShutdown(gdiplusToken);
}
Структура gdiplusStartupInput
используется инициализированная по-умолчанию, что провоцирует создание фоновых потоков, которое потом не обрабатывается. Корректная инициализация, не порождающая утечек, выглядит вот так:
for(;;)
{
::ULONG_PTR token{};
::Gdiplus::GdiplusStartupInput input{};
input.GdiplusVersion = 1;
input.DebugEventCallback = nullptr;
input.SuppressBackgroundThread = TRUE;
input.SuppressExternalCodecs = TRUE;
if(::Gdiplus::Status::Ok == ::Gdiplus::GdiplusStartup(&token, &input, nullptr))
{
::Gdiplus::GdiplusShutdown(token);
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пишу программу на C++ в Linux в среде NetBeansIDEХочу использовать #include <fillesystem>, чтобы ее использовать нужно добавить флаг -std=c++17 или -std=gnu++17
Пробовал отсеивать через if, но не получилосьПоможете реализовать?
По отзывам некоторых жителей этого ресурса, установил посмотреть Code::Block