Сериализация на 32 и 64 битных платформах
От: Varavva  
Дата: 20.07.15 08:47
Оценка: :))
Столкнулся с одной неприятностью при миграции с 32 на 64 одной сторонней либы. А именно, файлы, сохраненные в 32 проге не открываются в 64 битной.
Подебажив, выяснил, что сползание чтения файлов начинается со считывания шапки файла. А там стуктура типа такой

struct HEader
{
char signature[5];
int minVer;
int maxVer;
unsigned long UserBlockSize;
}

Так вот, первые три поля считались правильно, в последнем — мусор.

Считываю из файла через sizeof(Header)

Как быть? Неужели первое поле виновато?
Как указать размер указателя силой?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.