如何为TCHAR数组赋值

Eta*_*tan 16 c++ tchar

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构建中,它们什么都不做.