| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Не понятный глюк с CFile |
| Автор: knave 29.3.2005, 14:15 | ||
| NSVS7.1 C++ Читаю файл (через CFile) который лежит в корне диска d:\scheme_1.gif. Файл открывается, устанавливается позициz 68 байт от конца, дальше пытаюст считать - считывается 0 байт, ни ошибок ни эксцепшенов. Все пучком, а даные не читаются
Захожу внутрь этого вызова, там обычный ::ReadFile , который и выдает такой интересный результат. Считывается именно 0 байт. @ERR ошибок не показывает, эксцепшенов то же никаких. Вчем рпоблема??? |
| Автор: knave 4.4.2005, 12:19 |
| Разобрался. Подкузьмили MS мне основательно. Файл открывался нормально, а вот такая конструкция работала не верное. CFile file; ... file.Seek(0 - sizeof(EncryptedHeader), CFile::end); 0 - sizeof(EncryptedHeader) - вместо знакового результата получался беззнаковый, так как в 7.1 это sizeof(EncryptedHeader) дает беззнаковый результат. Получалосб что вместо отрицательного смещения у меня дыло оченьболльшое положительное (отрицательное число в беззнаковом представлении). Пришлось все править на такую конструкцию, с явным преобразованеим типа. file.Seek(0 - (LONGLONG)sizeof(EncryptedHeader), CFile::end); в 6.0 file.Seek(0 - sizeof(EncryptedHeader), CFile::end); - это давало знаковы резкльтат |