HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра

Преобразование типов С\С++
  #1  
Старый 25.01.2010, 10:32
Snake Plissken
Новичок
Регистрация: 07.07.2008
Сообщений: 22
С нами: 9391732

Репутация: 0
По умолчанию Преобразование типов С\С++

Пагни, у меня вопрос. Как можно грамотно преобразовать size_t в TCHAR.

Насколько я понял size_t это алиас для unsigned int?
 

  #2  
Старый 25.01.2010, 10:52
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

эм.. TCHAR это в зависимости от настроек алиас на wchar_t (2 байта) или char (1 байт)
а size_t - unsigned int (4 байта) Так что преобразовать полностью не получится. Места не хватит.
 

  #3  
Старый 25.01.2010, 10:58
Snake Plissken
Новичок
Регистрация: 07.07.2008
Сообщений: 22
С нами: 9391732

Репутация: 0
По умолчанию

Я подразумеваю что у меня TCHAR'овая строка.
 

  #4  
Старый 25.01.2010, 11:05
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

Ну тогда TCHAR* а не TCHAR
Тебе что именно нужно? перевести из числа в строку или просто засунуть в двоичном виде в буфер?

Если просто засунуть в буфер, то
TCHAR * buf; или TCHAR buf[хзхз];
int i;
*(int*)buf = i;

Если преобразовать в стркоу, то
sprintf(buf, "%u", i);
 

  #5  
Старый 25.01.2010, 11:14
Snake Plissken
Новичок
Регистрация: 07.07.2008
Сообщений: 22
С нами: 9391732

Репутация: 0
По умолчанию

sprintf ругается

Код:
 Error	1  error C2664: 'sprintf' : cannot convert parameter 1 from 'TCHAR *' to 'char *'
swprintf и прочее пробовал - компилер не ругается, а во время работы программа вылетает с немыслимыми ошибками и еретическими речами
 

  #6  
Старый 25.01.2010, 12:54
Snake Plissken
Новичок
Регистрация: 07.07.2008
Сообщений: 22
С нами: 9391732

Репутация: 0
По умолчанию

Все, разобрался. С TCHAR * buf не работает, нужно размер указывать обязательно. Хуита
 

  #7  
Старый 25.01.2010, 18:59
Gar|k
Постоянный
Регистрация: 20.03.2009
Сообщений: 564
С нами: 9023100

Репутация: 395


По умолчанию

Snake Plissken мда... подобные ругательства лечатся явным определением типов...

char buf;
sprintf((TCHAR *)buf,...,...);

НО TCHAR это спецовый макрос (как уже сказал slesh), который в зависимости от настроек проекта ANSI или UNICODE создает определенные строки char или wchar_t
поэтому или пиши все в UNICODE или поставь в настройках проекта ANSI.
 

  #8  
Старый 25.01.2010, 21:21
AlexTheC0d3r
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
С нами: 9365528

Репутация: 425
По умолчанию

Цитата:
Сообщение от Gar|k  
Snake Plissken мда... подобные ругательства лечатся явным определением типов...

char buf;
sprintf((TCHAR *)buf,...,...);

НО TCHAR это спецовый макрос (как уже сказал slesh), который в зависимости от настроек проекта ANSI или UNICODE создает определенные строки char или wchar_t
поэтому или пиши все в UNICODE или поставь в настройках проекта ANSI.
программа написаная с использованием UNICODE, будет работать быстрее чем с ASCII

дело в том, что процессор работает с UNICODE, и если программа написана в с использованием ascii, будет затрачено дополнительное время на преобразование
 

  #9  
Старый 25.01.2010, 21:51
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами: 10386906

Репутация: 599


По умолчанию

Цитата:
дело в том, что процессор работает с UNICODE, и если программа написана в с использованием ascii, будет затрачено дополнительное время на преобразование
какой нах процессор с юникодом работает? это апи виндовые юникодные. и именно ось тратит время на преобразование аски в юникод.

ps: последнее время столько лулзов даж баш не доставлял, сколько форум ачата.
 

  #10  
Старый 25.01.2010, 22:31
AlexTheC0d3r
Постоянный
Регистрация: 25.07.2008
Сообщений: 454
С нами: 9365528

Репутация: 425
По умолчанию

Цитата:
Сообщение от Ra$cal  
какой нах процессор с юникодом работает? это апи виндовые юникодные. и именно ось тратит время на преобразование аски в юникод.

ps: последнее время столько лулзов даж баш не доставлял, сколько форум ачата.
Очепятка, извините
 
Закрытая тема



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Аутентификация, Сравние нескольких типов аутентификации. miig Безопасность и Анонимность 4 18.01.2010 01:03
Преобразование hex символов в URL fire64 С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 2 11.12.2009 19:28
Защита от DDOS любых типов stop-ddos Разное - Покупка, продажа, обмен 0 11.11.2009 23:49
несоответствие типов eagle_ua С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 9 16.11.2005 10:22



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.