Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
 
1 / 1 / 0
Регистрация: 01.09.2010
Сообщений: 12
1

Утечка памяти AfxBeginThread

27.09.2010, 12:25. Просмотров 1557. Ответов 0
Метки нет (Все метки)


Создаю поток в котором слушаю флаги ошибок. При завершении работы программы компилятор говорит, что обнаружена утечка памяти. Как ее устранить?

Detected memory leaks!

Dumping objects ->

f:\rtm\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp(306) : {166} client block at 0x0035C980, subtype c0, 68 bytes long.

a CWinThread object at $0035C980, 68 bytes long

Object dump complete.
Создаю поток:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
BOOL CLabelPrinterDlg::OnInitDialog()
 
{
 
    /*..........*/
 
    this->trackingStatus = true;
 
    AfxBeginThread(&CLabelPrinterDlg::TrackingError,this);
 
 
 
    return FALSE;  // return TRUE  unless you set the focus to a control
 
}
Поток:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
UINT CLabelPrinterDlg::TrackingError(LPVOID arg)
 
{
 
    CLabelPrinterDlg * dlg = (CLabelPrinterDlg*)arg;
 
    while(dlg->trackingStatus)
 
    {
 
        if((dlg->label.errStatus || dlg->scaner.errStatus))
 
        {
 
            dlg->PrintError();
 
        }
 
        else if((!dlg->label.errStatus && !dlg->scaner.errStatus))
 
        {
 
            dlg->ClearError();
 
        }
 
        ::Sleep(1000);
 
    }
 
    AfxEndThread(0);
 
    return 0;
 
}
PrintError:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
bool CLabelPrinterDlg::PrintError(void)
 
{
 
    CString tmpStr;
 
    tmpStr.Empty();
 
    CRichEditCtrl * m_rich;
 
    m_rich = (CRichEditCtrl*)GetDlgItem(IDC_ERROR_MESSAGE);
 
    for(int i = 0; i < label.errorMsg.GetCount(); i++)
 
    {
 
        tmpStr.Append(label.errorMsg.GetAt(i));
 
        tmpStr.Append(_T("\r\n"));
 
    }
 
    for(int i = 0; i < scaner.errorMsg.GetCount(); i++)
 
    {
 
        tmpStr.Append(scaner.errorMsg.GetAt(i));
 
        tmpStr.Append(_T("\r\n"));
 
    }
 
    m_rich->SetWindowTextW(tmpStr);
 
    return true;
 
}
ClearError:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool CLabelPrinterDlg::ClearError(void)
 
{
 
    CRichEditCtrl * m_rich;
 
    m_rich = (CRichEditCtrl*)GetDlgItem(IDC_ERROR_MESSAGE);
 
    m_rich->SetWindowTextW(_T(""));
 
    return false;
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.09.2010, 12:25
Ответы с готовыми решениями:

Утечка памяти?
Здравствуйте, друзья. Подскажите, пожалуйста, есть ли в приведенном ниже коде ошибка,...

Утечка памяти, пользуюсь vld
Начал разбираться чо это такое, утечка памяти. Как самы простой способ нашел программу Visual Leak...

Помогите советом: странная утечка памяти, не могу найти причину
Привет, спасибо, что не прошли мимо. Проблема выглядит так: при запуске программы она занимает до...

AfxBeginThread() и изменение контролов
Я запускаю тред и мне нужно изменять контролы, но я не совсем понимаю как это делать. Вот функция:...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.09.2010, 12:25

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Изменение контролов MFC из другого потока AFxBeginThread
Что то не получается изменять контролы MFC из другого потока , знаю что это можно делать , хотя и...

Утечка памяти
Взял листинг кода из книги Стивен Прата Язык программирования С++. Меня терзают смутные сомнения...

Утечка памяти...
Вообщем написал код: QMap&lt;QString, QMultiMap&lt;bool, QString&gt; &gt; lstPlug; QMultiMap&lt;bool,...

Утечка памяти
Либо я себе мозг запудрила, либо помогите мне :) есть у меня вектор vector&lt;char*&gt; names_variable;...

Утечка памяти?
Добрый день, форумчане! Я пишу парсер для своего языка программирования и начал с парсинга...

Утечка памяти
Подскажите, где происходит утечка памяти? Размер используемой памяти постоянно растет. + Как можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.