![]() |
Преобразование типов С\С++
Пагни, у меня вопрос. Как можно грамотно преобразовать size_t в TCHAR.
Насколько я понял size_t это алиас для unsigned int? |
эм.. TCHAR это в зависимости от настроек алиас на wchar_t (2 байта) или char (1 байт)
а size_t - unsigned int (4 байта) Так что преобразовать полностью не получится. Места не хватит. |
Я подразумеваю что у меня TCHAR'овая строка.
|
Ну тогда TCHAR* а не TCHAR
Тебе что именно нужно? перевести из числа в строку или просто засунуть в двоичном виде в буфер? Если просто засунуть в буфер, то TCHAR * buf; или TCHAR buf[хзхз]; int i; *(int*)buf = i; Если преобразовать в стркоу, то sprintf(buf, "%u", i); |
sprintf ругается
Код:
Error 1 error C2664: 'sprintf' : cannot convert parameter 1 from 'TCHAR *' to 'char *' |
Все, разобрался. С TCHAR * buf не работает, нужно размер указывать обязательно. Хуита
|
Snake Plissken мда... подобные ругательства лечатся явным определением типов...
char buf; sprintf((TCHAR *)buf,...,...); НО TCHAR это спецовый макрос (как уже сказал slesh), который в зависимости от настроек проекта ANSI или UNICODE создает определенные строки char или wchar_t поэтому или пиши все в UNICODE или поставь в настройках проекта ANSI. |
Цитата:
дело в том, что процессор работает с UNICODE, и если программа написана в с использованием ascii, будет затрачено дополнительное время на преобразование |
Цитата:
ps: последнее время столько лулзов даж баш не доставлял, сколько форум ачата. |
Цитата:
|
| Время: 14:05 |