无法从'unsigned short [9]'转换为'char []'
cannot convert from 'unsigned short [9]' to 'char []'
我正在做非常古老的C++项目。在Visual Studio 6中构建C++代码时,出现错误"无法从'无符号短[9]'转换为'char []'"。
对于下面的代码:
char variable[] = _T("something");
我用谷歌搜索并试图了解这个问题。这可能是我构建它的方式。
我已经尝试了用 https://mihai-nita.net/2006/07/23/visual-studio-unicode-projects/编写的步骤(在预处理器中添加UNICODE
和_UNICODE
(。如果有人可以提出纠正此错误的解决方案,那将非常有帮助。
_T
宏根据UNICODE
宏的状态扩展到窄字符串或宽字符串文本。 如果未定义UNICODE
_T
将扩展到char
字符串,如果定义了UNICODE
_T
将扩展到宽字符字符串。
如果您使用的是_T
,则应使用类型TCHAR
,根据UNICODE
宏的状态,该类型同样会扩展到char
或wchar_t
:
TCHAR variable[] = _T("something");
这将扩展到
char variable[] = "something";
如果未定义UNICODE
,则将扩展为类似
wchar_t variable[] = L"something";
如果定义了UNICODE
。
值得注意的是,wchar_t
在Visual C++的早期版本中并不是真正的类型,而只是unsigned short
的typedef
(或宏扩展到(,这就是为什么您看到的错误消息引用而不是wchar_t
。
相关文章:
- 将无符号char*转换为std::istream*C++
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 使用char类型将decimal转换为string,将string转换为decimal
- 如何在对<char>C++程序进行逆向工程的同时将 std::basic_string 转换为 Rust 可读值?
- 将函数参数"const char*"转换为"std::string_view"是
- 如何在保持其值的同时将 c++ 无符号字符变量转换为 char 变量
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 如何在不强制转换每个参数的情况下删除初始值设定项列表中从 int 到 char 的缩小转换?
- C ++如何在使用"tolower"时将char转换为int
- 有没有办法在C++的赋值中将"char**"转换为"double"?
- 如何使用多次 memcpy 转换回 std::vector<unsigned char>?
- 将"uint8_t"(从套接字读取)隐式转换为"char"安全吗
- JavaCPP 错误:无法将参数"1"的"char*"转换为"Abc*
- 将传入的网络"char*"数据转换为"uint8_t"并返回的安全方法是什么?
- 转换char*时的值不同
- Boost Python 不会自动转换 char* 数据成员
- 除了转换char*之外,还有更好的方法来获得一个变量值吗?
- 如何跨平台转换char*到long long(64位)
- 用atof转换char数组中的浮点数
- C转换char[]为时间戳;