Mfc 如何将tchar指针转换为char指针

Mfc 如何将tchar指针转换为char指针,mfc,visual-c++,Mfc,Visual C++,我想把一个tchar*转换成char*这是可能的。如果是,如何做。我使用unicode设置ATCHAR是普通的char或wchar\t,具体取决于项目的设置。如果是后者,则需要与适当的代码页参数一起使用。我发现wcstombs非常适合做这种事情,如果无法转换指针,则需要分配一个新字符串,即“char”而不是“wchar\t” 最优雅的方法是使用ATL转换宏,因为它将隐藏所有分配并调用其他注释中提到的函数 范例 #include <atlbase.h> #include <atl

我想把一个tchar*转换成char*这是可能的。如果是,如何做。我使用unicode设置A
TCHAR
是普通的
char
wchar\t
,具体取决于项目的设置。如果是后者,则需要与适当的代码页参数一起使用。

我发现wcstombs非常适合做这种事情,

如果无法转换指针,则需要分配一个新字符串,即“char”而不是“wchar\t”

最优雅的方法是使用ATL转换宏,因为它将隐藏所有分配并调用其他注释中提到的函数

范例

#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 ) );
}
#包括
#包括
无效函数()
{ 
TCHAR wszHelloTchar=\u T(“你好!\n”);
使用_CONVERSION;//在使用T2A()和其他ATL宏之前需要一次宏
//printf需要一个字符*
//T2A将TCHAR字符串(如有必要)转换为char
printf(T2A(wszHelloTchar));
}

编辑后添加的原始帖子中缺少此信息。