mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2024-12-26 09:20:34 +05:00
Fix the problem with saving a file with several meshes under Windows.
This commit is contained in:
parent
eb7803d480
commit
20d7486abe
@ -28,6 +28,10 @@
|
|||||||
#include <med_err.h>
|
#include <med_err.h>
|
||||||
#include <med_proto.h>
|
#include <med_proto.h>
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
#include <windows.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <boost/version.hpp>
|
#include <boost/version.hpp>
|
||||||
|
|
||||||
#ifdef _DEBUG_
|
#ifdef _DEBUG_
|
||||||
@ -100,6 +104,23 @@ namespace MED
|
|||||||
{
|
{
|
||||||
if (myCount++ == 0) {
|
if (myCount++ == 0) {
|
||||||
const char* aFileName = myFileName.c_str();
|
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);
|
myFid = MEDfileVersionOpen(aFileName,med_access_mode(theMode), myMajor, myMinor, MED_RELEASE_NUM);
|
||||||
}
|
}
|
||||||
if (theErr)
|
if (theErr)
|
||||||
|
Loading…
Reference in New Issue
Block a user