Mfc 如何将tchar指针转换为char指针
我想把一个tchar*转换成char*这是可能的。如果是,如何做。我使用unicode设置AMfc 如何将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
或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));
}
编辑后添加的原始帖子中缺少此信息。