如何将TCHAR转换为常量字符
How to convert TCHAR to const char?
我发现最相似的是转换为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*(如果需要将其作为参数传递给函数(。当你说
"路径"显示错误
这是因为数组类型不可赋值。我真的希望这能有所帮助。
相关文章:
- 如何循环访问常量字符**?
- constexpr 函数获取常量字符*
- 如何计算常量字符**中的总字符数?
- QDial:如何将 int 值传递给需要常量字符*的 Qfile?
- 为什么 std::string_view 比常量字符*快?
- 函数签名与调用的函数不匹配,常量字符[]和字符*之间的区别?
- 在编译时将常量字符* 转换为常量 char_type*
- 将字符串数组传递给接受常量字符**的函数
- 错误:请求从"常量字符 [5]"转换为非标量类型"字符串"
- 字符串强制转换为常量字符*
- 使用常量字符*时退出代码 139
- 为什么我可以隐式地将字符*转换为常量字符*,但不能将无符号字符*
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- 无法<string>从"常量字符 []"转换为<类名>
- 初始化常量字符* 数组
- 常量字符*的性质是什么?
- C++ 获取向量中常量字符* [ ] 的长度
- 无法将参数 1 从 WCHAR 转换为常量字符 *
- 如何在 c++ 中将向量转换为<string>常量字符* const*?
- C++将常量字符* 指针数组传递给对象