char* to wchar_t*
От: Alx_S Россия  
Дата: 02.03.06 19:53
Оценка:
Использую функцию mbtowc( wchar_t *wchar,const char *mbchar, size_t count );
но преобразуеться только 1 символ
Например:
char *pmbc = "String";
wchar_t *pwc = new wchar_t;

mbtowc(pwc,pmbc,MB_CUR_MAX);

delete pwc;

И вместо String получаю S,что не так?
Re: char* to wchar_t*
От: Аноним  
Дата: 02.03.06 20:01
Оценка:
Здравствуйте, Alx_S, Вы писали:

A_S>Использую функцию mbtowc( wchar_t *wchar,const char *mbchar, size_t count );

A_S>но преобразуеться только 1 символ
A_S>Например:
A_S>char *pmbc = "String";
A_S>wchar_t *pwc = new wchar_t;

A_S>mbtowc(pwc,pmbc,MB_CUR_MAX);


A_S>delete pwc;


A_S>И вместо String получаю S,что не так?


wchar_t *pwc = new wchar_t[strlen(pmbc)];//!
Re: char* to wchar_t*
От: DigitalGuru Россия http://svetlyak.ru
Дата: 03.03.06 07:47
Оценка:
Здравствуйте, Alx_S, Вы писали:

A_S>Использую функцию mbtowc( wchar_t *wchar,const char *mbchar, size_t count );

A_S>но преобразуеться только 1 символ
A_S>Например:
A_S>char *pmbc = "String";
A_S>wchar_t *pwc = new wchar_t;

A_S>mbtowc(pwc,pmbc,MB_CUR_MAX);


A_S>delete pwc;


A_S>И вместо String получаю S,что не так?


Ну ты хотя бы документацию то почитай!
mbtowc — convert a multibyte sequence to a wide character (один, ОДИН символ конвертит!!!)

Используй mbstowcs, mbsrtowcs если нужно конвертить строку (правда mbtowc и mbstowcs не тредсейфные, то есть если у тебя несколько потоков, то их лучше не юзать, в этом случае тебя спасет только mbsrtowcs).

Кури маны
Re[2]: char* to wchar_t*
От: Andrej Kalinicenko  
Дата: 03.03.06 16:04
Оценка:
"DigitalGuru" <50347@users.rsdn.ru> schrieb im Newsbeitrag news:1711478@news.rsdn.ru...
> mbtowc и mbstowcs не тредсейфные, то есть если у тебя несколько потоков, то их лучше не юзать...

Если не затруднит, можно про "не тредсейфность" выше перечисленных функций поподробнее
Posted via RSDN NNTP Server 2.0
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.