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()功能不应该完全符合我的要求吗?将给定的字符串转换为TCHARs?将两条线放在一起时,为什么会起作用?为了让它工作,我需要改变什么?
我遇到的其他一些令人困惑的事情:
我搜索了它的互联网和已经看到,也有_T()和_TEXT()和__T()和__TEXT().它们适用于什么?我应该在什么环境中使用哪一个?
ava*_*kar 21
分配不起作用的原因与TCHARs和_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构建中,它们什么都不做.