2010-01-21 4 views

ответ

8

_tcscmp() - макро. Если вы определите UNICODE, он будет использовать wcscmp(), в противном случае он будет использовать strcmp().

Обратите внимание, что типы TCHAR, PTSTR и т. Д. Аналогичны. Они будут WCHAR и PWSTR, если вы определяете UNICODE и CHAR и PSTR в противном случае.

+8

Это неверно. 'UNICODE' управляет определением широкой символьной строки в Win32 API. когда вы '#include '. '_UNICODE' управляет поддержкой c-runtimes для широких (и многобайтовых) символов и имеет смысл, когда вы' #include '(или любые другие заголовки c-runtime). Если '_UNICODE' определен,' _tcscmp' будет 'wcscmp', иначе если' _MBCS' определен, '_tcscmp' будет' _mbcscmp', иначе он будет 'strcmp'. –

+0

@ Крис Бекке Хм, я этого не знал. Обычно я определяю как (с ведущим подчеркиванием, так и без), и теперь имеет смысл, почему это необходимо. :-) – asveikau

7

Нет, вы должны использовать _ tcscmp. Это решит правильную функцию в зависимости от ваших флагов компилятора.