cout строка получает адрес вместо значения

Существует макрос, определенный ниже:

#ifdef UNICODE
typedef wchar_t     TCHAR;
#define TEXT(quote) L##quote
#else
typedef char        TCHAR;
#define TEXT(quote) quote
#endif

Когда я пытаюсь напечатать сообщение, используя std::cout, как показано ниже:

TCHAR* test = TEXT("test");
cout << test;

Что я получаю адрес типа 00D82110 вместо значения "тест".

Кто-нибудь может дать какие-либо предложения, как я могу напечатать значение здесь? Большое спасибо!

1 ответ

Вам нужно использовать wcout вместо cout для широких персонажей. Сделай это:

#ifdef UNICODE
    typedef wchar_t     TCHAR;
    #define TEXT(quote) L##quote
    #define COUT        wcout
#else
    typedef char        TCHAR;
    #define TEXT(quote) quote
    #define COUT        cout
#endif

а потом:

TCHAR* test = TEXT("test");
COUT << test;
Другие вопросы по тегам