powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / сериализация VC++
5 сообщений из 5, страница 1 из 1
сериализация VC++
    #32814280
anais
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня есть класс CField, я создала функцию сериализации - сохраняет массив m_Field [j].
в классе СFieldDoc создаю - СField *field, в СFieldView - делаю так создаю новый объект field=new CField; далее GetDocument()->field=field;

не работает сериализация - я проверяла, файл сохраняемый не пустой, туда что-то записывает, но вот не считывается, то есть не вызывается сериализация на чтение из файла (ставлю туда breakpoint), при попытки открыть сохранённый файл, программа туда даже не доходит. может я что не поняла?


если есть у кого-нибудь работающие примеры - буду рада.
...
Рейтинг: 0 / 0
сериализация VC++
    #32814288
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
функцию
void ТвойDoc::Serialize(CArchive& ar)
писала ?
...
Рейтинг: 0 / 0
сериализация VC++
    #32814508
anais
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ага..c собой нет кода, набросаю приблизительно:

IMPLEMENT_DECLARE и вторая функция тоже есть (не помню как пишется точно)

СField::Serialize(CArhive &ar)
{
CObject::Serialize(ar);
if (/условие/)
{
for (int i=0;i<9;i++)
{
for (int j=0;j<9;j++) ar>>m_field [j];
};
}
else
{
for (int i=0;i<9;i++)
{
for (int j=0;j<9;j++) ar<<m_field[j];
};
}

а в Doc:
CField *field;
СFieldDoc::Serialize(CArhive &ar)
{
if (/условие/)
{}
else
{};
field->Serialize(ar);
}

когда создаю объект класса CField во CFieldView - делаю так
CField *field;
СField::OnCreate(..);
{
/**/

field=new CField();
GetDocument()->field=field;

/**/
}
...
Рейтинг: 0 / 0
сериализация VC++
    #32814834
anais
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никто не сталкивался с такой проблемой?
...
Рейтинг: 0 / 0
сериализация VC++
    #32815661
anais
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вчера сидела до потери пульса :)

из CField перенесла сериализацию в CFieldDoc - всё заработало!
почему-то в СFieldDoc - Serialize не корректно работала строка field->Serialize(ar), вызывая сериализацию только для записи, но не для чтения, поместив код из CField в СFieldDoc ничего не меняя - всё заработало... не понимаю
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / сериализация VC++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]