Ошибка при считывании обьектов класса из бинарного файла через Seek на C++/CLI

нужна помощь в решении данной проблемы. В моем коде я записываю три обьекта класса в бинарный файл а потом считываю их из этого же файла, но проблема в том что выскакивает ошибка когда я ставлю указатель на память где находится второй обьекта класса.

#include <windows.h>
using namespace System;
using namespace System::IO;

ref class Rezultat {
int Sportsm_id;
int Koman_id;
int Discipl_id;
String^ Primech;
public:
Rezultat() {

}
Rezultat(int Sportsmen_id, int Komanda_id, int Disciplina_id, String^ 
 Primechanie) {
    Sportsm_id = Sportsmen_id;
    Koman_id = Komanda_id;
    Discipl_id = Disciplina_id;
    Primech = Primechanie;

}

void Write(BinaryWriter^ bw) {
    bw->Write(Sportsm_id);
    bw->Write(Koman_id);
    bw->Write(Discipl_id);
    bw->Write(Primech);
}

void Read(BinaryReader^ br) {
    Sportsm_id = br->ReadInt32();
    Koman_id= br->ReadInt32();
    Discipl_id= br->ReadInt32();
    Primech = br->ReadString();
}

};

int main(array<System::String^>^ args) {
Rezultat^ obj = gcnew Rezultat(1,1,1, "it's 1");
Rezultat^ obj1 = gcnew Rezultat(2, 2, 2, "it's 22222");
Rezultat^ obj2 = gcnew Rezultat(3, 3, 3, "it's 333");

int size1 = sizeof(obj);
int size2 = sizeof(obj1);
int size3 = sizeof(obj2);

FileStream^ fstrmw = gcnew FileStream("RezTab.dat", FileMode::Create, FileAccess::Write);
BinaryWriter^ binw = gcnew BinaryWriter(fstrmw);
obj->Write(binw);
obj1->Write(binw);
obj2->Write(binw);
binw->Close();

FileStream^ fstrmr = gcnew FileStream("RezTab.dat", FileMode::Open,FileAccess::Read);
BinaryReader^ binr = gcnew BinaryReader(fstrmr);

binr->BaseStream->Seek(0, SeekOrigin::Begin);
Rezultat^ obj01 = gcnew Rezultat();
obj01->Read(binr);

binr->BaseStream->Seek(1*sizeof(obj1), SeekOrigin::Begin);  /// ошибка появляется тут
Rezultat^ obj11 = gcnew Rezultat();
obj11->Read(binr);

binr->BaseStream->Seek(2 * sizeof(obj2), SeekOrigin::Begin);
Rezultat^ obj21 = gcnew Rezultat();
obj21->Read(binr);

binr->Close();
}

Ответы (0 шт):