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

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


если есть у кого-нибудь работающие примеры - буду рада.
...
Рейтинг: 0 / 0
06.12.2004, 13:09
    #32814288
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сериализация VC++
функцию
void ТвойDoc::Serialize(CArchive& ar)
писала ?
...
Рейтинг: 0 / 0
06.12.2004, 14:18
    #32814508
anais
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сериализация VC++
ага..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
06.12.2004, 16:26
    #32814834
anais
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сериализация VC++
никто не сталкивался с такой проблемой?
...
Рейтинг: 0 / 0
07.12.2004, 09:14
    #32815661
anais
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сериализация VC++
вчера сидела до потери пульса :)

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


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