const DWORD access = readOnly ? GENERIC_READ : (GENERIC_READ | GENERIC_WRITE);
if(!path.wstr().empty())
-#if (_WIN32_WINNT >= 0x0602)
+#if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0602)
return CreateFile2(path.wstr().c_str(), access, FILE_SHARE_READ, OPEN_EXISTING, NULL);
#else
return CreateFileW(path.wstr().c_str(), access, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
#endif
else if(!path.str().empty())
-#if (_WIN32_WINNT >= 0x0602)
+#if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0602)
return CreateFile2(path.toString().toCWString(), access, FILE_SHARE_READ, OPEN_EXISTING, NULL);
#else
return CreateFileA(path.str().c_str(), access, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
#ifdef _WIN32
SetLastError(NO_ERROR);
-#if (_WIN32_WINNT >= 0x0602)
+#if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0602)
LARGE_INTEGER fSize;
GetFileSizeEx(d->file, &fSize);
LONGLONG fileSize = fSize.QuadPart;