-1

我有一个TCHAR要分配给另一个的数组。例如:

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

有人知道吗?

4

3 回答 3

7

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

复制 TCHAR 数组_tcscpy_s是要走的路(让它在定义和不定义 UNICODE 的情况下编译......这将是首先使用 TCHAR 的唯一原因)。

于 2013-04-26T14:52:59.223 回答
2

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

您可以使用_tcsncpy_tcscpy功能:

_tcscpy(tchar2, tchar1);
于 2013-04-26T14:52:38.020 回答
2

使用lstrcpyn()或等效功能:

lstrcpyn(tchar2, tchar1, MAX_PATH);
于 2013-04-26T14:55:13.503 回答