将一个TCHAR值分配给另一个

时间:2013-04-26 14:49:11

标签: c++ winapi

我有一个TCHAR数组,我想分配给另一个。例如:

TCHAR tchar1[ MAX_PATH ],tchar2[ MAX_PATH ];
SHGetSpecialFolderPath(0,tchar1, CSIDL_MYPICTURES, FALSE);
tchar2=tchar1; //something like this

有人有想法吗?

3 个答案:

答案 0 :(得分:7)

你有两个char数组。它们不能相互分配,必须复制其内容。

复制TCHAR数组_tcscpy_s是可行的方法(使用和不使用UNICODE进行编译...这是首先使用TCHAR的唯一原因。)

答案 1 :(得分:2)

首先,tchar2=tchar1;无法编译,因为这些变量是数组。它们是否已被声明为TCHAR*它将被编译,但它不会按预期工作,因为它只会分配指针值,它不会将一个字符串复制到另一个字符串。

您可以使用_tcsncpy_tcscpy功能:

_tcscpy(tchar2, tchar1);

答案 2 :(得分:1)

使用lstrcpyn()或等效功能:

lstrcpyn(tchar2, tchar1, MAX_PATH);