ar.IsStoring()怎么判断是保存还是加载
ar.IsStoring()怎么判断是保存还是加载
BOOL CDocument::OnOpenDocument(LPCTSTR lpszPathName)函数定义中:
CFile* pFile = GetFile(lpszPathName,
CFile::modeRead|CFile::shareDenyWrite, &fe);
CArchive loadArchive(pFile,CArchive::load| CArchive::bNoFlushOnDelete);
---------------------------------------------------
BOOL CDocument::OnSaveDocument(LPCTSTR lpszPathName)函数中定义:
CFile* pFile = NULL;
pFile = GetFile(lpszPathName, CFile::modeCreate |
CFile::modeReadWrite | CFile::shareExclusive, &fe);
CArchive saveArchive(pFile,CArchive::store| CArchive::bNoFlushOnDelete);
---------------------------------------------------
_AFX_INLINE BOOL CArchive::IsLoading() const
{ return (m_nMode & CArchive::load) != 0; }
其中CArchive::load、CArchive::bNoFlushOnDelete是CArchive类的枚举变量Mode的值, enum Mode { store = 0, load = 1, bNoFlushOnDelete = 2, bNoByteSwap = 4 };可以用CArchive::load的形式来取得。
构造函数CArchive::CArchive(CFile* pFile, UINT nMode, int nBufSize, void* lpBuf) : m_strFileName(pFile->GetFilePath())中:
m_nMode = nMode;
这样看来,IsLoading必然返回1?