diff --git a/hgdriver/hgdev/hg_ipc.cpp b/hgdriver/hgdev/hg_ipc.cpp index d02bb0d..e6f0e2a 100644 --- a/hgdriver/hgdev/hg_ipc.cpp +++ b/hgdriver/hgdev/hg_ipc.cpp @@ -347,7 +347,7 @@ int shared_memory::write(const char* data, size_t len) ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // tiny_file_map ... #ifdef WIN32 -#define IS_VALID_MAP(map) !map +#define IS_VALID_MAP(map) map #else #define IS_VALID_MAP(map) map != -1 #endif @@ -406,10 +406,10 @@ int tiny_file_map::open(const char* file, unsigned int size, bool readonly) DWORD wrote = SetFilePointer(f, size - 1, NULL, FILE_BEGIN); if (wrote == size - 1) WriteFile(f, "\0", 1, &wrote, NULL); - map_ = CreateFileMappingA(f, NULL, PAGE_READONLY, 0, size, NULL); + map_ = CreateFileMappingA(f, NULL, PAGE_READWRITE, 0, size, NULL); if (map_) { - buf_ = (unsigned char*)MapViewOfFile(map_, FILE_MAP_READ, 0, 0, size); + buf_ = (unsigned char*)MapViewOfFile(map_, FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, size); if (!buf_) ret = GetLastError(); }