Re: WriteFile() и большие файлы (>4.2Гб) в Win98
От: SVV Беларусь  
Дата: 29.10.02 08:59
Оценка:
Здравствуйте and_tjurin, Вы писали:

AT>Здравствуйте.

AT>Для дозаписи файлов использую такой код:

AT>


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

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

AT> dwHei=0; dwLow=SetFilePointer(hFile,0,&dwHei,FILE_END);
AT> if(dwLow == 0xFFFFFFFF && (dwError = GetLastError()) != NO_ERROR)
AT>  { 
AT>    FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,dwError,MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),buf,250,NULL);
AT>    return(-2);
AT>   } 
AT>  PtrHei=dwHei; PtrLow=dwLow;
В этом примере ты не используешь PtrHei (почему не PtrHi?), PtrLow. Зачем засорять пример?

AT>

AT> WriteFile(hFile,SomeData,SizeData,&dwError,NULL);
Если уж приводишь подробный код, то почему не пишешь что такое SizeData?

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


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

Если бы проблема была с 95-й, я бы не удивился. А вообще советую проверить условия в которых существуют Win9x.
AT>Это особенность Win98 или ошибка в программе?
AT>На Win98 стоит FAT32.

В общем, если с 95-й проблем нет, ищи отличия в условиях работы 98-й и 95-й.

AT>С уважением

AT>Андрей Тюрин

AT>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.