2010-01-21 10 views

Antwort

8

_tcscmp() ist ein Makro. Wenn Sie UNICODE definieren, wird wcscmp() verwendet, andernfalls wird strcmp() verwendet.

Beachten Sie, dass die Typen TCHAR, PTSTR usw. ähnlich sind. Sie werden WCHAR und PWSTR sein, wenn Sie UNICODE und CHAR und PSTR andernfalls definieren.

+8

Das ist falsch. "UNICODE" steuert die Definition der breiten Zeichenfolge in der Win32-API. wenn Sie '# ' einschließen. '_UNICODE' steuert die C-Laufzeiten-Unterstützung für breite (und Multi-Byte-) Zeichen und hat eine Bedeutung, wenn Sie # ' (oder einen der anderen c-Laufzeit-Header) einschließen. Wenn '_UNICODE' definiert ist, wird' _tcscmp' 'wcscmp', sonst wird' _MBCS' definiert, '_tcscmp' wird' _mbcscmp', sonst wird 'strcmp'. –

+0

@Chris Becke Hm, das wusste ich nicht. Normalerweise definiere ich beides (mit führendem Unterstrich und ohne), und jetzt macht es Sinn, warum das nötig ist. :-) – asveikau

7

Nein, Sie sollten _ tcscmp verwenden. Dies wird abhängig von Ihren Compiler-Flags zu einer korrekten Funktion aufgelöst.