如何释放可以避免内存泄漏 Topic is solved

这是wxWidgets论坛的中文版本。在这里,您可以用您的母语汉语讨论上面任一子论坛所涉及的所有关于wxWidgets的话题。欢迎大家参与到对有价值的帖子的中英互译工作中来!
Post Reply
kingkamg
I live to help wx-kind
I live to help wx-kind
Posts: 187
Joined: Tue Apr 08, 2008 1:45 pm

如何释放可以避免内存泄漏

Post by kingkamg »

如下代码,主要用来将日志输出到两个不同的地方,请问如何是否才能保证内存不泄漏呢

Code: Select all

	m_pErrLog = new wxLogStderr;
	m_pErrLog->SetLogLevel(wxLOG_Info);
	wxLog::SetActiveTarget(m_pErrLog);
	wxLog::SetTimestamp(wxT("%m/%d/%Y %H:%M:%S")); 
	wxLog* pLog2 = new wxLogStream( new std::ofstream("BatchLog.txt") );
	m_pErrLog->SetLogLevel(wxLOG_Max);
	m_pLogchain = new wxLogChain(pLog2);
	m_pLogchain->PassMessages( true );
这是我释放的代码

Code: Select all


	wxLog::SetActiveTarget(NULL);	

	if ( m_pLogchain )
	{
		delete m_pLogchain;
		m_pLogchain = NULL;
	}
Loaden
I live to help wx-kind
I live to help wx-kind
Posts: 177
Joined: Tue Feb 19, 2008 10:21 am
Location: China

Post by Loaden »

为什么不使用tr1::shared_ptr呢?
Life is not fair, get used to it.
kingkamg
I live to help wx-kind
I live to help wx-kind
Posts: 187
Joined: Tue Apr 08, 2008 1:45 pm

Post by kingkamg »

:shock: 我不想用智能指针不行吗?只是想释放日志对象啊
kingkamg
I live to help wx-kind
I live to help wx-kind
Posts: 187
Joined: Tue Apr 08, 2008 1:45 pm

Post by kingkamg »

Code: Select all

	wxLog::SetActiveTarget(NULL);

	if ( m_pLogchain )
	{
		delete m_pLogchain;
		m_pLogchain = NULL;
	}

	if ( m_pLogFile )
	{
		delete m_pLogFile;
		m_pLogFile = NULL;
	}

	if ( m_pOldLog )
		wxLog::SetActiveTarget( m_pOldLog );

Post Reply