TCHAR
我的C++代码中有一个数组,我想为它分配静态字符串.
我通过它设置了一个初始字符串
TCHAR myVariable[260] = TEXT("initial value");
Run Code Online (Sandbox Code Playgroud)
这一切都很好.但是,当我将它分成两行时,如同
TCHAR myVariable[260];
myVariable = TEXT("initial value");
Run Code Online (Sandbox Code Playgroud)
它会出错并给出编译器错误:
错误C2440:'=':无法从'const char [14]'转换为'TCHAR [260]'
该TEXT()
功能不应该完全符合我的要求吗?将给定的字符串转换为TCHAR
s?将两条线放在一起时,为什么会起作用?为了让它工作,我需要改变什么?
我遇到的其他一些令人困惑的事情:
我搜索了它的互联网和已经看到,也有_T()
和_TEXT()
和__T()
和__TEXT()
.它们适用于什么?我应该在什么环境中使用哪一个?
ava*_*kar 21
分配不起作用的原因与TCHAR
s和_T
.几乎没有关系.以下也不起作用.
char var[260];
var = "str"; // fails
Run Code Online (Sandbox Code Playgroud)
原因是在C和C++中,您无法直接分配数组.相反,您必须逐个复制元素(例如,使用strcpy
或在您的情况下_tcscpy
).
strcpy(var, "str");
Run Code Online (Sandbox Code Playgroud)
关于问题的第二部分TEXT
,_T
以及其他部分是宏,在Unicode构建中将字符串文字转换为宽字符串文字.在非Unicode构建中,它们什么都不做.
归档时间: |
|
查看次数: |
39851 次 |
最近记录: |