Лажа в МСДН?
МСДН утверждает что
если _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*.
Что за путаница такая? И действительно ли эти функции равнозначны? Если да, то зачем их две?
В МСДН - куча лажи. Напиши билли - может ответят.
Однако функция _mbscpy реально существует в другом файле: mbstring.h
------
Могу спорить на что угодно что функция ТАМ не существует. Заголовок - да, но сама функция где-то в либах или дллках.
Если да, то зачем их две?
-----
Сам же пишешь - не может преобразовать char* в unsigned char*.
Дали тебе другую обертку над memcpy()
Однако функция _mbscpy реально существует в другом файле: mbstring.h ------ Могу спорить на что угодно что функция ТАМ не существует. Заголовок - да, но сама функция где-то в либах или дллках.ах, не будем к словам придираться. Без этого заголовка эта функция и в либах - можно считать что нету, т.е. не воспользуешься.
Дали тебе другую обертку над memcpy()вообще-то memcpy работает по другому: ей по-фигу нули.
ей по-фигу нули.
-----
Да не только нули - ей еще и на МЦБ покласть... только фаулты свистят по логам...
Господя... напиши простой тест - проверь что тебе надо и пользуйся как тебе надо.
Делов-то на 5 минут...
А в различия между char и unsigned char уже наверное никто не смотрит - у всех
давно String...
String это в новых проэктах, а тут приходится в старых копаться.
по-моему, мбцс версия ничем не должна отличаться от обычной (ведь мбцс символ не может содержать нуля). Но вдруг я чего не понимаю?! Не зря же Майкрософт заумные макросы напридумала.