Click here to Skip to main content
15,899,935 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: CFromView Pin
Richard MacCutchan26-Oct-11 2:43
mveRichard MacCutchan26-Oct-11 2:43 
AnswerRe: CFromView Pin
CPallini25-Oct-11 23:35
mveCPallini25-Oct-11 23:35 
QuestionQuestion on Windows IOCP Pin
SAMZCN25-Oct-11 17:04
SAMZCN25-Oct-11 17:04 
AnswerRe: Question on Windows IOCP Pin
Mark Salsbery25-Oct-11 17:34
Mark Salsbery25-Oct-11 17:34 
GeneralRe: Question on Windows IOCP Pin
SAMZCN25-Oct-11 23:54
SAMZCN25-Oct-11 23:54 
GeneralRe: Question on Windows IOCP Pin
Mark Salsbery26-Oct-11 5:08
Mark Salsbery26-Oct-11 5:08 
GeneralRe: Question on Windows IOCP Pin
SAMZCN26-Oct-11 15:42
SAMZCN26-Oct-11 15:42 
QuestionIMPLEMENT_SERIAL - VERSIONABLE_SCHEMA problem Pin
_Flaviu25-Oct-11 7:31
_Flaviu25-Oct-11 7:31 
I have an SDI app, where I want to serialize an versionable object, of CData class :
C++
class CData : public CObject  
{
	DECLARE_SERIAL(CData)
public:
	CData();
	virtual ~CData();

	virtual void Serialize(CArchive& ar);

	BOOL ReadDocumentFromDisk();
	BOOL WriteDocumentToDisk();

};


and here is implementation code :
C++
IMPLEMENT_SERIAL(CData, CObject, VERSIONABLE_SCHEMA | 1)
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CData::CData()
{

}

CData::~CData()
{

}

void CData::Serialize(CArchive& ar)
{
	CObject::Serialize(ar);

	try
	{
		if(ar.IsLoading())
		{
			TRACE("Loading : objectschema - %d\n",ar.GetObjectSchema());
			int n = 0;
			ar >> n;
			TRACE("n is %d\n",n);
		}
		else	// is storing
		{
			int x = 456;
			ar << x;
		}
	}
	catch(CFileException* pFileException)
	{
		pFileException->ReportError();
		pFileException->Delete();
	}
}

BOOL CData::ReadDocumentFromDisk()
{
	CFile file;
	CString sFile;
	CFileException FileException;

	::GetModuleFileName(NULL,sFile.GetBuffer(255),255);
	sFile.ReleaseBuffer();
	sFile = sFile.Left(sFile.ReverseFind('\\') + 1);
	sFile += _T("Default.tse");

	if(! file.Open(sFile,CFile::modeRead,&FileException))
	{
		return FALSE;
	}

	CArchive ar(&file,CArchive::load);
	Serialize(ar);

	return TRUE;
}

BOOL CData::WriteDocumentToDisk()
{
	CFile file;
	CString sFile;
	CFileException* pFileException = NULL;

	::GetModuleFileName(NULL,sFile.GetBuffer(255),255);
	sFile.ReleaseBuffer();
	sFile = sFile.Left(sFile.ReverseFind('\\') + 1);
	sFile += _T("Default.tse");

	if(! file.Open(sFile,CFile::modeCreate | CFile::modeWrite,pFileException))
	{
		return FALSE;
	}

	CArchive ar(&file,CArchive::store);
	Serialize(ar);

	return TRUE;
}


and from somewhere in CMyView class, I call :
C++
void CTestSerializeView::OnHelpLoad() 
{
	// TODO: Add your command handler code here
	CData data;
	data.ReadDocumentFromDisk();
}
void CTestSerializeView::OnHelpStore() 
{
	// TODO: Add your command handler code here
	CData data;
	data.WriteDocumentToDisk();
}


although serialization of integer variable is good, I always get version -1 of CData object :
<br />
TRACE("Loading : objectschema - %d\n",ar.GetObjectSchema()); <br />

what I'm doing wrong ?
AnswerRe: IMPLEMENT_SERIAL - VERSIONABLE_SCHEMA problem Pin
Erudite_Eric25-Oct-11 8:08
Erudite_Eric25-Oct-11 8:08 
QuestionUsing Timer with non-dialog class Pin
aangerma24-Oct-11 22:13
aangerma24-Oct-11 22:13 
AnswerRe: Using Timer with non-dialog class Pin
_AnsHUMAN_ 24-Oct-11 22:30
_AnsHUMAN_ 24-Oct-11 22:30 
GeneralRe: Using Timer with non-dialog class Pin
aangerma24-Oct-11 22:43
aangerma24-Oct-11 22:43 
GeneralRe: Using Timer with non-dialog class Pin
Albert Holguin25-Oct-11 5:02
professionalAlbert Holguin25-Oct-11 5:02 
GeneralRe: Using Timer with non-dialog class Pin
Andrew Brock25-Oct-11 5:50
Andrew Brock25-Oct-11 5:50 
GeneralRe: Using Timer with non-dialog class Pin
Albert Holguin25-Oct-11 8:57
professionalAlbert Holguin25-Oct-11 8:57 
AnswerRe: Using Timer with non-dialog class Pin
Erudite_Eric24-Oct-11 22:35
Erudite_Eric24-Oct-11 22:35 
GeneralRe: Using Timer with non-dialog class Pin
aangerma24-Oct-11 23:01
aangerma24-Oct-11 23:01 
GeneralRe: Using Timer with non-dialog class Pin
Richard MacCutchan25-Oct-11 0:41
mveRichard MacCutchan25-Oct-11 0:41 
GeneralRe: Using Timer with non-dialog class Pin
Erudite_Eric25-Oct-11 1:05
Erudite_Eric25-Oct-11 1:05 
AnswerRe: Using Timer with non-dialog class Pin
jeron125-Oct-11 4:04
jeron125-Oct-11 4:04 
AnswerRe: Using Timer with non-dialog class Pin
PJ Arends25-Oct-11 6:22
professionalPJ Arends25-Oct-11 6:22 
GeneralRe: Using Timer with non-dialog class Pin
Erudite_Eric25-Oct-11 6:59
Erudite_Eric25-Oct-11 6:59 
GeneralRe: Using Timer with non-dialog class Pin
Richard MacCutchan25-Oct-11 9:55
mveRichard MacCutchan25-Oct-11 9:55 
GeneralRe: Using Timer with non-dialog class Pin
Richard MacCutchan25-Oct-11 10:43
mveRichard MacCutchan25-Oct-11 10:43 
GeneralRe: Using Timer with non-dialog class Pin
PJ Arends25-Oct-11 17:44
professionalPJ Arends25-Oct-11 17:44 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.