如何将TCHAR转换为常量字符

How to convert TCHAR to const char?

本文关键字:常量 字符 转换 TCHAR      更新时间:2023-10-16

我发现最相似的是转换为char。我正在尝试将TCHAR"path"转换为const char。顺便说一下,我使用了字符集:"未设置"。

#include <stdlib.h>
// ... your defines
#define MAX_LEN 100
TCHAR *systemDrive = getenv("systemDrive");
TCHAR path[_MAX_PATH];
_tcscpy(path, systemDrive);
TCHAR c_wPath[MAX_LEN] = _T("Hello world!");//this is original
//TCHAR c_wPath[MAX_LEN] = path; "path" shows error
char c_szPath[MAX_LEN];
wcstombs(c_szPath, c_wPath, wcslen(c_wPath) + 1);

TCHAR是不同类型的别名,具体取决于平台、定义的宏等。因此,TCHAR可以是char(1字节(或WCHAR(2字节(的别名。此外,WCHAR可以是WCHAR_t的别名或无符号短字符。但是,您使用wcstobbs进行了转换,它具有类似CCD_ 1,所以你有

char* c_szPath 

指向转换后的字符数组,现在,如果您需要constchar*,那么简单地编写就足够了const char * myPath = c_szPath,它是合法的,并且使用myPath。但也许,您甚至不需要这个,因为char*可以绑定类型为的参数const char*(如果需要将其作为参数传递给函数(。当你说

"路径"显示错误

这是因为数组类型不可赋值。我真的希望这能有所帮助。