关于Unicode转换为char 这里new出来应该如何释放内存,请有经验的朋友指点上

关于Unicode转换为char 这里new出来应该怎么释放内存,请有经验的朋友指点下
我用VS2008用的是宽字节模式,但是MYSQl用的是多字节的,
下面是我写的 Unicode 转 char  但是这个new出来的内存到底怎么释放?
有点不明白!
const char* CDlog::UnicodetoChar(const TCHAR* src)
{
if (NULL == src)
{
return NULL;
}
DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,src,-1,NULL,0,NULL,FALSE);
m_pCharBuf = new char[dwNum];
memset(m_pCharBuf, 0 ,sizeof(char) * (dwNum +1));
WideCharToMultiByte(CP_OEMCP,NULL,src,-1,m_pCharBuf,dwNum,NULL,FALSE);
return m_pCharBuf;
}

------解决方案--------------------
修正:std::wstring->std::string

------解决方案--------------------
函数不要这样定义.
改这样
const FALSE CDlog::UnicodetoChar(__in const LPWSTR UnicodeChar, __out LPSTR AnsiChar, __in int nSize)


------解决方案--------------------
让调用者申请,释放内存
------解决方案--------------------
其实也可以直接让MYSQL转换编码的
SELECT CONVERT(CAST(UnicodeChar AS BINARY) USING 'gbk') FROM table