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

> ВНИМАНИЕ!

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

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> TMemoryStream и что ему надо
сообщение
Сообщение #1


mea culpa
*****

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

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


Уже накипела эта проблема.. При использовании некоторых методов TMemoryStream вылетают AV или Invalid Pointer Operation. Выяснил, что ошибки вылетают на местах очистки потока, или вызова деструктора (free,destroy,clear). Естесственно, я не всё это сразу использовал, а пробовал по очереди. Например, в таком участке кода возникает эта проблема (fsz описан глобально в unit3):

procedure Thread3.Execute;
begin
Try
form3.serverSocket2.socket.connections[nc2].SendText('#X'+xname+'#0'+'Size:'+IntToStr(fsz.Size)+ '#0');
fsz.Position:=0;
form3.serverSocket2.socket.connections[nc2].sendstream(fsz);
stop:=false;
form3.statusbar1.panels[1].text:='Второй канал свободен';
form3.timer1.enabled:=true;
fsz.Clear; //зло
Finally

end;
end;


Без потока то же самое было, это не он виноват.


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


Гость






Цитата
fsz.Clear; //зло
Правильно мыслишь, зло... Не надо делать работу компилятора, SendStream сам уничтожит поток. А теперь подумай, что будет, если на момент вызова Clear твой TMemoryStream будет уничтожен?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


mea culpa
*****

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

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


Цитата
А теперь подумай, что будет, если на момент вызова Clear твой TMemoryStream будет уничтожен?


Понятно... Ну кто ж знал:)


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

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

 





- Текстовая версия 27.10.2020 10:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name