Для строк Unicode вы хотите wcout
.
Возможно, вы видите hex, потому что поток вывода ANSI / ASCII не знает, как обрабатывать символы Unicode.
LPTSTR
и LPWSTR
на самом деле являются C-измами, унаследованными от дней API C Windows. Для C ++ я настоятельно рекомендую вам использовать std::string
и / или std::wstring
.
Если вам нужно свернуть свой собственный макрос, вам понадобится что-то вроде:
#ifdef _UNICODE
#define COUT wcout
#else
#define COUT cout
#endif