Ответ
 
Опции вопроса Поиск в этом вопросе Опции просмотра
  #1  
Старый 28.09.2011, 00:16
Аватар для Guest
Guest
Вопрос
Сообщений: n/a
По умолчанию

Компилю в Visual C++8Не могу понять почему переставлены байты. Суть явления есть структура с элементами типа char и unsigned short. Она заполняется при чтении файла.TError вызов функции GetNextLogData(&Head, hSize) //где head указатель на стурктуру ;unsigned long hSize=sizeof(Head) GetNextLogData(void *buf, word32 &len){ word32 tmp, rdPortion; char* bf=(char*)buf; int16 tmp2=1; for(tmp=len; !Error() && tmp2 && tmp>0 && lenCurrentRecord>0 { rdPortion=(tmp>lenLogPart)?lenLogPart:tm p; if((tmp2=read(handle, bf, rdPortion))==-1) Error(emReadError);и тд. Суть проблемы в том что после заполнения структуры поле с unsigned short значением имеет переставноленные байты (должно быть 17222 ('C''F') реальное значение получается 17987 ('F''C')).Код портируется из DOS компилировался в BorlandC 3.1 там было все нормально (те последовательность байт после преобразования была верной)
Ответить с цитированием
Ответ



Похожие вопросы
Тема Автор Раздел Ответов Последний вопрос или ответ
cannot convert from 'const char *' to 'char *' Guest Продолжение старого архива 0 30.09.2011 16:28
Головоломки. Не нашел ответа. почему Преобраз char** в const char**? Guest Ещё вопросы и ответы из архива 5 0 30.09.2011 16:26
Непонятки с unsigned long и QByteArray Guest Новый архив 2 0 28.09.2011 18:59
QFile наследник. проблема с readData(char *data,qint64 maxlen) Guest Новый архив 2 0 28.09.2011 17:53
Запись unsigned char в XML Guest Продолжение архива вопросов 0 28.09.2011 14:31



© www.otvetnemail.ru - Форум вопросов и ответов.