2010-01-21 25 views

Répondre

8

_tcscmp() est une macro. Si vous définissez UNICODE, il utilisera wcscmp(), sinon il utilisera strcmp(). Les types TCHAR, PTSTR, etc. sont similaires. Ils seront WCHAR et PWSTR si vous définissez UNICODE, et CHAR et PSTR sinon.

+8

C'est incorrect. 'UNICODE' conduit la définition de chaîne de caractères large dans l'API Win32. c'est-à-dire quand vous # incluez '. '_UNICODE' gère le support c-runtimes pour les caractères larges (et multi-octets), et a un sens quand vous #incluez ' (ou n'importe lequel des autres en-têtes c-runtime). Si '_UNICODE' est défini,' _tcscmp' sera 'wcscmp', sinon si' _MBCS' est défini, '_tcscmp' sera' _mbcscmp', sinon ce sera 'strcmp'. –

+0

@Chris Becke Hm, je ne savais pas cela. Je définis généralement les deux (avec le trait de soulignement principal et sans), et maintenant il est logique pourquoi c'est nécessaire. :-) – asveikau

7

Non, vous devez utiliser _ tcscmp. Cela résoudra à la fonction appropriée en fonction de vos indicateurs de compilation.