const char* CStringToChar(CString sSource)
{
char* ptr;
#ifdef _UNICODE
LONG len;
len = WideCharToMultiByte(CP_ACP, 0, sSource, -1, NULL, 0, NULL, NULL);
ptr = new char[len + 1];
memset(ptr, 0, len + 1);
WideCharToMultiByte(CP_ACP, 0, sSource, -1, ptr, len + 1, NULL, NULL);
#else
ptr = new char[sSource.GetAllocLength() + 1];
sprintf(ptr, _T("%s"), sSource);
#endif
return ptr;
}