Ошибка при считывании обьектов класса из бинарного файла через 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();
}