![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
External exception C000001D
Cosinus © (2004-09-08 16:25:00)Где имеенно оно вылетает, хз... Локализовать по моему очень трудоемко.
Вот код...
try
GetMem(buffer,$1000);
Gauge1.MaxValue:=BlockCount;
Mem.Seek($10000,soFromBeginning);
for t:=0 to BlockCount-1 do
begin
Mem.ReadBuffer(buffer^,$1000);
addr:=copy(HexToStrN(IntToHex($10000+t*$1000,8)),2,3);
Str:='';
for i:=0 to $fff do
str:=str+chr(ord(buffer[i]));
DatStr:=addr+#$10+#$00+str;
PortInit(WrCommCrc(DatStr,true),PortBd);//запись в СОМ-порт
If not ReadAnswer(4,1500) then //Если нет ответа, то...
begin
Log(clRed,'Error with ErrorCode 1 [timeout]',false);
mem.Free;
FreeMem(buffer);
beep(2000,1000);
exit;
end;
end;
Log(clLime,'Writing memory OK',true);
finally
mem.Free;
FreeMem(buffer);
end;
Вылетает в самом конце (видимо с освобождением что то не то). Есть идеи? :)
MU (2004-09-08 16:45:00) [1]Угу... Но все равно - молодец
Cosinus (2004-09-08 16:43:00) [2]>>MU © (08.09.04 16:34) [2]
Я уже так и подумал... Но все равно спасибо.
MU (2004-09-08 16:34:00) [3]If not ReadAnswer(4,1500) then //Если нет ответа, то...
begin
Log(clRed,'Error with ErrorCode 1 [timeout]',false);
mem.Free;
FreeMem(buffer);
beep(2000,1000);
exit; end;
end;
Log(clLime,'Writing memory OK',true);
finally
mem.Free;
FreeMem(buffer);
end;
finally ВСЕ РАВНО ОТРАБОТАЕТ при выходе по EXIT
Cosinus (2004-09-08 16:26:00) [4]Забыл...
Я нашел, что C000001D - этоSTATUS_ILLEGAL_INSTRUCTION. В MSDN про нее написано -"Attempting to execute an instruction code not defined by the processor"