Здравствуйте все!
Точно не знаю в какой форум писать, надеюсь модераторы перенесут, если не правильно.
Есть простой MFC SDI-проект, и такой обработчик
void CMainFrame::OnClose()
{
vector<string> vec;
CMessage pMessage;
pMessage.AddField("02");
bool b= (("01"== pMessage.GetField(0)) && ("_"== pMessage.GetField(0)));
CFrameWnd::OnClose();
}
где:
class CMessage
{
public:
void AddField(string strValue)
{
m_vecFields.push_back(strValue);
};
string GetField(int i)
{
return m_vecFields[i];
};
private:
vector<string> m_vecFields;
};
После запуска по F5 (VC6.0 EE) получаем:
Detected memory leaks!
Dumping objects ->
{217} normal block at 0x00422DC0, 33 bytes long.
Data: < 02 > 00 30 32 00 CD CD CD CD CD CD CD CD CD CD CD CD
причём странно, если в OnClose я комментирую сторку
vector<string> vec;
или
bool b= (("01"== pMessage.GetField(0)) && ("_"== pMessage.GetField(0)));
то утечка пропадает, хотя они никак не связаны(я так думаю).
Буду благодарен за любые ответы!
22.06.05 17:22: Перенесено модератором из 'C/C++' — Павел Кузнецов
Здравствуйте, LuciferMoscow, Вы писали:
LM>у тебя не это http://rsdn.ru/article/cpp/stlproblem.xmlАвтор(ы): Роман Хациев
Дата: 27.02.2002
Если вы пытались работать с экземплярами классов STL, передавая их в DLL, или получая оттуда, а потом бросили это занятие из-за непонятных ошибок, возникающих в вашей программе, то эта заметка для вас. Даже если видимых проблем в вашей программе нет, то все равно прочитайте эту заметку, чтобы знать что делать, когда они появятся :)
часом?
Спасибо за ответ, dll в проекте нет, (но статью прочитаю более внимательно)
вообще всё сделал мастер, кроме CMessage и кода обработчика.
Здравствуйте, Pupil, Вы писали:
P>Здравствуйте, LuciferMoscow, Вы писали:
LM>>у тебя не это http://rsdn.ru/article/cpp/stlproblem.xmlАвтор(ы): Роман Хациев
Дата: 27.02.2002
Если вы пытались работать с экземплярами классов STL, передавая их в DLL, или получая оттуда, а потом бросили это занятие из-за непонятных ошибок, возникающих в вашей программе, то эта заметка для вас. Даже если видимых проблем в вашей программе нет, то все равно прочитайте эту заметку, чтобы знать что делать, когда они появятся :)
часом?
P>Спасибо за ответ, dll в проекте нет, (но статью прочитаю более внимательно)
P>вообще всё сделал мастер, кроме CMessage и кода обработчика.
Похоже, что не все вы пишете, дорогой товарищь

В вашем примере всегда b == false, а vec нигде не используются. И именно они влияют на утечку ?! Приводите полный код.... посмотрим...а так не верю
_>Похоже, что не все вы пишете, дорогой товарищь
Пишу всё
_>В вашем примере всегда b == false, а vec нигде не используются. И именно они влияют на утечку ?!
да так и было, поэтому и пишу.
А проблема решилась устанокой Vs6sp6.