Лажа в МСДН?
МСДН утверждает что
если _MBCS то _tcscpy преобразуется в _mbscpy.
У меня имеется такой МБЦС проэкт.
Так вот когда я ставлю курсор на _tcscpy и нажимаю F12 (goto definition), то я попадаю на строчку: #define _tcscpy strcpy (определенное в tchar.h).
А это не то, что описано в документации: не _mbscpy.
В этом же файле неколько строк выше есть комментарий: /* Note that _mbscat, _mbscpy and _mbsdup are functionally equivalent to
strcat, strcpy and strdup, respectively. */
Однако функция _mbscpy реально существует в другом файле: mbstring.h.
Причем:
strcpy(char*, const char*)
_mbscpy(unsigned char*, const unsigned char*).
Т.е. автоматом strcpy на _mbscpy заменить невозможно, т.к. будет ошибка компиляции: не может преобразовать char* в unsigned char*.
Что за путаница такая? И действительно ли эти функции равнозначны? Если да, то зачем их две?