ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра

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

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

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

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

  #2  
Старый 25.01.2010, 10:52
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

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

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

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

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

  #4  
Старый 25.01.2010, 11:05
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Ну тогда 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
Провел на форуме:
64581

Репутация: 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
Провел на форуме:
64581

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

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

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

Репутация: 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
Провел на форуме:
1229135

Репутация: 425
Отправить сообщение для AlexTheC0d3r с помощью ICQ
По умолчанию

Цитата:
Сообщение от 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
Провел на форуме:
1354067

Репутация: 599


По умолчанию

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

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

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

Репутация: 425
Отправить сообщение для AlexTheC0d3r с помощью ICQ
По умолчанию

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

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



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



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


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




ANTICHAT.XYZ