OpenMP エラー 1002
—————————
致命的なユーザー エラー 1002:
—————————
同一名の 1 つで ‘#pragma omp critical’ が不適切に入れ子にされています
2.9 ディレクティブの入れ子
局所的になる様に,呼び出し元での “#pragma omp critical” を削除.
class Profile { ... protected: LPCTSTR LastProfileName ; CString C_T_ProfileName ; ... } ; BOOL Profile::SaveProfileName(void) { CWinApp* app = AfxGetApp() ; if (app== NULL) { return FALSE ; } LastProfileName = AfxGetApp()->m_pszProfileName ; AfxGetApp()->m_pszProfileName = C_T_ProfileName ; return TRUE ; } BOOL Profile::LoadProfileName(void) { AfxGetApp()->m_pszProfileName = LastProfileName ; return TRUE ; }
omp critical ではなく,MFC 同期クラスを使用する様に変更.
// 以下は,テスト用のコード BOOL Profile::?et??? (LPCTSTR lpszSection,LPCTSTR lpszEntry,...) { ... CMutex m(FALSE,MN_LPN) ; m.Lock() ; // return ???Profile??? (lpszSection, lpszEntry, ...) ; BOOL ret = ???Profile??? (lpszSection, lpszEntry, ...) ; m.Unlock() ; return ret ; } // MFC 同期クラスの呼出しはコストがかからない様に修正する