2010-01-21 31 views

Trả lời

8

_tcscmp() là macro. Nếu bạn xác định UNICODE, nó sẽ sử dụng wcscmp(), nếu không nó sẽ sử dụng strcmp().

Lưu ý các loại TCHAR, PTSTR, v.v. tương tự nhau. Chúng sẽ là WCHARPWSTR nếu bạn xác định UNICODECHARPSTR nếu không.

+8

Điều đó không đúng. 'UNICODE' định nghĩa chuỗi ký tự rộng trong API Win32. tức là khi bạn '#include '. '_UNICODE' thúc đẩy sự hỗ trợ c-runtimes cho các ký tự rộng (và nhiều byte), và có nghĩa khi bạn' #include '(hoặc bất kỳ phần đầu c-runtime nào khác). Nếu '_UNICODE' được định nghĩa,' _tcscmp' sẽ là 'wcscmp', nếu' _MBCS' được định nghĩa, '_tcscmp' sẽ là' _mbcscmp', nếu không nó sẽ là 'strcmp'. –

+0

@Chris Becke Hm, tôi không biết điều đó. Tôi thường xác định cả hai (với dấu gạch dưới và không có), và bây giờ nó có ý nghĩa tại sao đó là cần thiết. :-) – asveikau

7

Không, bạn nên sử dụng _ tcscmp. Điều đó sẽ giải quyết cho chức năng thích hợp tùy thuộc vào cờ biên dịch của bạn.

Các vấn đề liên quan