IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Invalid Pointer Operation...
Unconnected
сообщение 21.02.2009 20:29
Сообщение #1


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


...и почему-то никто почти не знает толком, от чего она берётся. На куске кода:

Procedure ssendfile;
var fm,fm2:TFilestream;
begin
try
fm:=TFileStream.Create(form7.Edit1.Text, fmOpenRead);
fm.Position:=0;
fm2:=TfileStream.create('temp',fmcreate);
fm2.position:=0;
cipher.initstr(key,tdcp_sha1);
cipher.EncryptStream(fm,fm2,fm.size);
cipher.burn;
form1.ClientSocket1.socket.SendText('#X'+form7.edit1.text+'#0'+inttostr(form1.listbox2.itemindex));
fm2.position:=0;
form1.ClientSocket1.socket.SendText('Size:'+IntToStr(fm2.Size)+ #0);
form7.StatusBar1.SimpleText:='Выполняется отправка '+inttostr(fm2.size);
form1.ClientSocket1.Socket.SendStream(fm2);
form7.edit1.text:='';
form7.hide;
fm.free;
fm2.Free;
except
showmessage('Ошибка!');
end;
end;

вылетает Invalid Pointer Operation и вдобавок ещё одна ошибка с длинным содержанием, начинается "Unhabled execution in...". Было ещё несколько моментов с вылетом ошибки, но их я сумел исправить сам, здесь не получается..


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Unconnected
сообщение 22.02.2009 13:08
Сообщение #2


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Сделал локальными, но смысла в этом в принципе нет, т.к. принимает поток другая копия программы, и к тому же вызывается cipher.burn.

Несколько часов тестил программу, результаты..

procedure TForm7.Button2Click(Sender: TObject); //здесь происходит выбор, какую процедуру вызывать. Shifr2=true
begin
if shifr2=false then SendFile
else ssendfile;
end; //!!!

Procedure ssendfile;
var fm:TFilestream;
fm2:TMemoryStream;
begin
fm:=TFileStream.Create(form7.Edit1.Text, fmOpenRead); //ок
fm.Position:=0; //ок
fm2:=TMemoryStream.create; //ок
fm2.position:=0; //ок
cipher.initstr(key,tdcp_sha1); //ок
cipher.EncryptStream(fm,fm2,fm.size); //ок
cipher.burn; //ок
form1.ClientSocket1.socket.SendText('#X'+form7.edit1.text+'#0'+inttostr(form1.listbox2.itemindex)); //ок
Try
fm2.Position:=0; //ок
form1.ClientSocket1.socket.SendText('Size:'+IntToStr(fm2.Size)+ #0); //ок
form7.StatusBar1.SimpleText:='Выполняется отправка '+inttostr(fm2.size); //ок
form1.ClientSocket1.Socket.SendStream(fm2); //ок
form7.edit1.text:=''; //ок
form7.Hide; //?
Finally
fm.free; //ок
fm2.Free; //ок
end;
end;


Ок - ошибок при прохождении не возникает. На строке, помеченной "?", переход в модуль CoolTrayIcon.pas(при чём он здесь - не понимаю, на эту форму он вообще не должен воздействовать), и далее на строке, помеченной "!!!" (в самом верху) ошибка.

Сообщение отредактировано: Unconnected - 22.02.2009 13:09


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 9.07.2025 19:40
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"