-// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
#include <med_err.h>
#include <med_proto.h>
+#ifdef WIN32
+#include <windows.h>
+#endif
+
#include <boost/version.hpp>
#ifdef _DEBUG_
static int MYDEBUG = 0;
static int MYVALUEDEBUG = 0;
#else
-static int MYDEBUG = 0;
-static int MYVALUEDEBUG = 0;
+// static int MYDEBUG = 0; // unused in release mode
+// static int MYVALUEDEBUG = 0; // unused in release mode
#endif
namespace MED
{
if (myCount++ == 0) {
const char* aFileName = myFileName.c_str();
+#ifdef WIN32
+ if (med_access_mode(theMode) == MED_ACC_RDWR) {
+ // Force removing readonly attribute from a file under Windows, because of a bug in the HDF5
+ std::string aReadOlnyRmCmd = "attrib -r \"" + myFileName + "\"> nul 2>&1";
+#ifdef UNICODE
+ const char* to_decode = aReadOlnyRmCmd.c_str();
+ int size_needed = MultiByteToWideChar(CP_UTF8, 0, to_decode, strlen(to_decode), NULL, 0);
+ wchar_t* awReadOlnyRmCmd = new wchar_t[size_needed + 1];
+ MultiByteToWideChar(CP_UTF8, 0, to_decode, strlen(to_decode), awReadOlnyRmCmd, size_needed);
+ awReadOlnyRmCmd[size_needed] = '\0';
+ _wsystem(awReadOlnyRmCmd);
+ delete[] awReadOlnyRmCmd;
+#else
+ system(aReadOlnyRmCmd.c_str());
+#endif
+ }
+#endif
myFid = MEDfileVersionOpen(aFileName,med_access_mode(theMode), myMajor, myMinor, MED_RELEASE_NUM);
}
if (theErr)
*theErr = TErr(myFid);
else if (myFid < 0)
- EXCEPTION(std::runtime_error,"TFile - MEDfileVersionOpen('"<<myFileName<<"',"<<theMode<<"',"<< MED_MAJOR_NUM<<"',"<< myMinor<<"',"<< MED_RELEASE_NUM<<")");
+ EXCEPTION(std::runtime_error,"TFile - MEDfileVersionOpen('"<<myFileName<<"',"<<theMode<<"',"<< myMajor <<"',"<< myMinor<<"',"<< MED_RELEASE_NUM<<")");
}
const TIdt&
void
TWrapper
::GetNames(TElemInfo& theInfo,
- TInt theNb,
+ TInt /*theNb*/,
EEntiteMaillage theEntity,
EGeometrieElement theGeom,
TErr* theErr)
void
TWrapper
::GetNumeration(TElemInfo& theInfo,
- TInt theNb,
+ TInt /*theNb*/,
EEntiteMaillage theEntity,
EGeometrieElement theGeom,
TErr* theErr)
void
TWrapper
::GetFamilies(TElemInfo& theInfo,
- TInt theNb,
+ TInt /*theNb*/,
EEntiteMaillage theEntity,
EGeometrieElement theGeom,
TErr* theErr)
//----------------------------------------------------------------------------
EGeometrieElement
TWrapper
- ::GetBallGeom(const TMeshInfo& theMeshInfo)
+ ::GetBallGeom(const TMeshInfo& /*theMeshInfo*/)
{
TErr anError;
TFileWrapper aFileWrapper(myFile, eLECTURE, &anError, myMinor);
// write node ids
SetCellInfo(theInfo, theMode, theErr);
- if (theErr && theErr < 0)
+ if (theErr && *theErr < 0)
return;
// write diameter
//----------------------------------------------------------------------------
void
TWrapper
- ::GetGaussInfo(TInt theId,
+ ::GetGaussInfo(TInt /*theId*/,
TGaussInfo& theInfo,
TErr* theErr)
{
//----------------------------------------------------------------------------
void
TWrapper
- ::GetProfileInfo(TInt theId,
+ ::GetProfileInfo(TInt /*theId*/,
TProfileInfo& theInfo,
TErr* theErr)
{
//----------------------------------------------------------------------------
PGrilleInfo
TWrapper
- ::CrGrilleInfo(const PMeshInfo& theMeshInfo)
+ ::CrGrilleInfo(const PMeshInfo& /*theMeshInfo*/)
{
return PGrilleInfo(); // not implemented????
}