![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глюки с открытием файла [Delphi]
*Pavel © (2004-05-07 16:23:00)Использую unit uCRC32;
В нем есть
function CRC32Stream(FName: String; Count: Integer;
const BufSize: Cardinal = 1024): Cardinal;
Вызываю ее из основной программы
if CRC32Stream(OpenSaveDialog.FileName, FSize) = CRC then label1.Caption := 'ОК';
Вываливается exception '......... Stream read error.......'
в следующем месте (в uCRC32)
function CRC32Stream(FName: String; Count: Integer;
const BufSize: Cardinal = 1024): Cardinal;
var
N: Cardinal;
Buffer: Pointer;
source : TFileStream;
begin
source := TFileStream.Create(FName, fmOpenRead); // <---вылет тут
..................
Самое интересное - все это прекрасно работает в классическом VCL project'e.
Может кто знает в чем траблы ?
SPeller (2004-05-07 18:51:00) [1]А если скомпилить проект без замены системных библиотек, ошибка есть?
Gandalf (2004-05-07 17:52:00) [2]Это KOL модуль? У нас нет TFileStream...
*Pavel (2004-05-07 17:46:00) [3]Вариант с уже открытым файлом не катит по одной причине (повторяюсь): Классический VCL проект работает прекрасно на любой версии Delphi и Windows. Но стоит подрубить этот юнит (uCRC32) к KOL_MCK проекту и вызвать ту самую функцию - возникает exception.
*Pavel (2004-05-07 17:35:00) [4]>> Speller
Нет, файл не был открыт, т.к. инструкция
source := TFileStream.Create(FName, fmOpenRead);
стоит первой в этой функции.
Вываливается ошибка на всех абсолютно файлах.
Существуют два вида ошибок: либо "Cannot open file *******.***"
либо "Stream read error", но первая возникает значительно чаще.
Есть у меня предчувствие, что тут причастны следующие юниты:
....\Delphi6\Kol\sysdcu_d6\*.dcu. (судя по инструкции - альтернативная замена делфийским)
SPeller (2004-05-07 16:54:00) [5]Может этот файл был открыт до этой функции? Кстати, что говорит ошибка в случаях кроме "иногда" ?
*Pavel (2004-05-07 16:37:00) [6]Иногда вываливается в том же месте сообщение:
Vta.exe raised exception class EFOpenError with message 'Cannot open file D:\Vta\test1.exe'. Process stopped. Use step or Run to continue.