コード例 #1
0
ファイル: SharedMru.cpp プロジェクト: beketa/jot-for-X01SC
// ファイルからロード
void	CSharedMru::Load()
{
	if ( WaitForSingleObject( m_hSema ,INFINITE )==WAIT_OBJECT_0 ){
		if ( m_pMapPtr != NULL ){
			// すでにロードされていれば処理しない
			if ( memcmp( m_sig , m_pMapPtr , 4 ) != 0 ){
				FileR	f;
				bool ret = f.open( m_filename );

				if ( ret ){
					// 読込正常
					memcpy( m_pMapPtr , f.base() , f.size() );

					ret = false;
					// シグネチャチェック
					if ( memcmp( m_sig , m_pMapPtr , 4 ) == 0 ){
						// 長さチェック
						int	len = *(int*)(m_pMapPtr+4);			// 長さ取得
						if ( len == f.size() ){
							ret = true;
						}
					}
				}
				Update();
			}
		}

		ReleaseMutex( m_hSema );
	}

}