Russian Qt Forum
Май 03, 2024, 22:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как правильно освободить память?  (Прочитано 4561 раз)
alex-v
Гость
« : Март 11, 2012, 09:22 »

Генерирую excel-файл. Заполняю текстом. Сохраняю на диск. Закрываю, освобождаю все ресурсы как надо. Все ОК. Процесс excel завершается корректно.

Как только использую эту функцию для вставки картинок

Код:
void Excel::setCellPicture(QAxObject *worksheet, const QRect &rect, const QString &imgFilePath)
{
    QAxObject *shapes = worksheet->querySubObject("Shapes");

    if (shapes)
    {
        shapes->dynamicCall("AddPicture(QVariant,QVariant,QVariant,QVariant,QVariant,QVariant,QVariant)", imgFilePath, false, true, rect.left(), rect.top(), rect.width(), rect.height());   
        shapes->clear();

        delete shapes;
    }
}

то после этого процесс excel остается в памяти, не закрывается пока я не завершаю программу.
От чего такое происходит? Вроде как ресурсы нормально освобождаются.
Записан
alex-v
Гость
« Ответ #1 : Март 11, 2012, 19:49 »

up
Записан
CJ1
Гость
« Ответ #2 : Июнь 19, 2012, 12:10 »

Я делаю так
Код:
                // Закрываю Excel
                workbooks->dynamicCall("Close (Boolean)", false);
                excel->dynamicCall("Quit (void)");

И никаких проблем
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.044 секунд. Запросов: 20.