WriteFile() и большие файлы (>4.2Гб) в Win98
От: and_tjurin Удмуртия  
Дата: 29.10.02 05:03
Оценка:
Здравствуйте.
Для дозаписи файлов использую такой код:



HANDLE hFile;
DWORD  dwLow,PtrLow,dwError;
LONG   dwHei,PtrHei;

 hFile=CreateFile(filename,GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
 if(hFile == INVALID_HANDLE_VALUE) return(-1);

 dwHei=0; dwLow=SetFilePointer(hFile,0,&dwHei,FILE_END);
 if(dwLow == 0xFFFFFFFF && (dwError = GetLastError()) != NO_ERROR)
  { 
    FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,dwError,MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),buf,250,NULL);
    return(-2);
   } 
  PtrHei=dwHei; PtrLow=dwLow;



 WriteFile(hFile,SomeData,SizeData,&dwError,NULL);

 CloseHandle(hFile); 
 if(dwError == 0)  return(-3);


Файлы больше 4.2 Гб нормально записываются в Win95 и Win2000, но в Win98 возвращается ошибка (-3).
Это особенность Win98 или ошибка в программе?
На Win98 стоит FAT32.

С уважением
Андрей Тюрин
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.