Как преобразовать указатель tchar в указатель char - PullRequest
2 голосов
/ 12 ноября 2009

Я хочу преобразовать tchar * в char *, возможно ли это. если да, то как это сделать. Я использую настройку Unicode

Ответы [ 3 ]

2 голосов
/ 17 ноября 2009

Вы не можете конвертировать указатель, вам нужно выделить новую строку "char" вместо "wchar_t"

самый элегантный способ сделать это с помощью макросов преобразования ATL, поскольку он скрывает все выделение и вызывается для функций, упомянутых в других комментариях

Пример

#include <atlbase.h>
#include <atlconv.h>

void YourFunction() 
{ 
    TCHAR wszHelloTchar = _T("Hello!\n");

    USES_CONVERSION;   // a macro required once before using T2A() and other ATL macros

    // printf require a char*
    // T2A converts (if necessary) the TCHAR string to char
    printf( T2A( wszHelloTchar ) );
}
2 голосов
/ 12 ноября 2009

A TCHAR - это обычный char или wchar_t в зависимости от настроек вашего проекта. Если это последнее, вам нужно будет использовать WideCharToMultiByte с соответствующим параметром кодовой страницы.

1 голос
/ 13 ноября 2009

Я считаю, что wcstombs отлично подходит для подобных вещей,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...