Re: Баг CDialog + сраный MFC = утечки
От: ElcnU Россия  
Дата: 26.01.07 09:14
Оценка:
Здравствуйте, Blabla, Вы писали:

B>Я ниче не понимаю....

B>Неужели никто не замечал никогда как течет память при работе с диалогами?

B>Привожу пример:

B>1)С помощью мастера создаем проект-диалог
B>2)Создаем в ресурсах еще один диалог с ID=IDD_DLG2
B>3)На сгенерированном мастером диалоге (при создании проекта) кидаем кнопку и создаем обработчик нажатия этой кнопки
B>4)В обработчике этой кнопки пишем следующий код:

B>CDialog dlg(IDD_DLG2);

B>dlg.DoModal();

B>5)Запускаем приложение

B>6)Запускаем диспетчер задач, и находим наш процесс
B>7)Теперь в запущенном нашем приложении устанавливаем фокус на кнопку и зажимаем Enter. В результате дилог IDD_DLG2 будет появляться и исчезать, появляться и исчезать, появляться и исчезать....

B>8)Теперь смотрим в диспетчер задач. Память выдялемая под наш процесс постоянно УВЕЛИЧИВАЕТСЯ!


B>Что за хрень?

B>Кто нибудь может это объяснить?
B>И можно от этого как-нибудь избавиться?

попробуй сделать так
CDialog* dlg=new CDialog(IDD_DLG2);
dlg->DoModal();
delete dlg;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.