我有一个TCHAR
数组,我想分配给另一个。例如:
TCHAR tchar1[ MAX_PATH ],tchar2[ MAX_PATH ];
SHGetSpecialFolderPath(0,tchar1, CSIDL_MYPICTURES, FALSE);
tchar2=tchar1; //something like this
有人有想法吗?
答案 0 :(得分:7)
你有两个char数组。它们不能相互分配,必须复制其内容。
复制TCHAR数组_tcscpy_s是可行的方法(使用和不使用UNICODE进行编译...这是首先使用TCHAR的唯一原因。)
答案 1 :(得分:2)
首先,tchar2=tchar1;
无法编译,因为这些变量是数组。它们是否已被声明为TCHAR*
它将被编译,但它不会按预期工作,因为它只会分配指针值,它不会将一个字符串复制到另一个字符串。
_tcscpy(tchar2, tchar1);
答案 2 :(得分:1)
使用lstrcpyn()
或等效功能:
lstrcpyn(tchar2, tchar1, MAX_PATH);