I want to conver a tchar* to char * is this possible . if yes how to do it. I use unicode setting
+2
A:
A TCHAR
is either a plain char
or a wchar_t
depending on your project's settings. If it's the latter, you would need to use WideCharToMultiByte
with appropriate code page parameter.
dirkgently
2009-11-12 12:11:02
It's the latter - "I use unicode setting"
MSalters
2009-11-12 12:24:41
This information was missing in the original post, added after the edit.
dirkgently
2009-11-12 12:26:31
+1
A:
You can't convert the pointer, you need to allocate a new string that is "char" instead of "wchar_t"
the most elegant way to do this is with the ATL conversion macros because it will hide all the allocation and called to the functions mentioned in the other comments
example
#include <atlbase.h>
#include <atlconv.h>
void YourFunction()
{
TCHAR wszHelloTchar = _T("Hello!\n");
USES_CONVERSION; // a macro required once before using T2A() and other ATL macros
// printf require a char*
// T2A converts (if necessary) the TCHAR string to char
printf( T2A( wszHelloTchar ) );
}
fredr
2009-11-17 04:35:56