![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как можно корректно определить, что за указателем есть объект [D7]
trace © (2007-06-26 13:56:00)как можно корректно определить, что за указателем есть объект, т.е. примерно что-то такое:
var
H: THandle;
begin
H := 565;
if TObject(H).ClassType <> TButton then
exit;
DrPass (2007-06-26 20:16:00) [1]
> так вот в присланном запросе есть ссылка на объект, нужно
> проверить есть ли у нас в наличии объект такой по такой-
> то ссылке и если нет, перенаправить запрос стороннему приложению.
>
Так в чем проблема-то? В такой зверской "архитектуре" можно практически однозначно утверждать - по адресу, который присылает приложение-клиент, в приложении-сервере никакого объекта нет.
tesseract (2007-06-26 18:09:00) [2]
> trace (26.06.07 18:04) [20]
А чем тогда DCOM/COM+ не нравиться ? Там весь такой маршалинг реализован - а ваш метод это ловля акулы на детоорган - ссылками на объект в памяти между приложениями швыряться....... да ещё неизвестно где находящийся.
trace (2007-06-26 18:04:00) [3]FreeAndNil хорошо ага, но не всегда поможет.
> Ёперный театр!!!
не нравится пример выше, вот другой: есть некие объекты наши и стороннего приложения, есть приложение клиент которое использует эти объекты, причем для клиента пофигу объект находится в нашем процессе или в стороннем, он посылает запрос нам, а мы уже разгребаем, так вот в присланном запросе есть ссылка на объект, нужно проверить есть ли у нас в наличии объект такой по такой-то ссылке и если нет, перенаправить запрос стороннему приложению. Объект существующий и у нас и у стороннего приложения по одинаковому адресу не рассматривается.
tesseract (2007-06-26 17:55:00) [4]
> Ага семафоры с мьютексами тоже хорошая штука.
Даёшь каждому объекту по мьютексу!!!!!!!!!
trace (2007-06-26 17:40:00) [5]Assigned не пойдет. СОМ тут ни к чему.
>Схватил объект, попользовался - отпусти.
Ага семафоры с мьютексами тоже хорошая штука.
>У каждого процесса свое изолированное адресное пространство
Тото и оно и оно быть так должно.
Плохиш (2007-06-26 17:39:00) [6]
> StriderMan © (26.06.07 17:31) [16]
> поэтому FreeAndNil и спи спокойно
Ну, ну...
StriderMan (2007-06-26 17:31:00) [7]
> Ega23 © (26.06.07 16:23) [10]
> А что Assigned? Он тупо на неравенство nil проверяет...
это должен всякий помнить :)
поэтому FreeAndNilи спи спокойно
Anatoly Podgoretsky (2007-06-26 16:57:00) [8]> trace (26.06.2007 16:25:11) [11]
У каждого процесса свое изолированное адресное пространство
evvcom (2007-06-26 16:55:00) [9]Про COM почитай
oldman (2007-06-26 16:33:00) [10]
> и затем управлять этим объектом через наш процесс
> причем объект должен быть уничтожен при первом же требовании
> какого либо из процессов,
Ёперный театр!!!
Ega23 (2007-06-26 16:31:00) [11]
> ну к примеру ситуация с потолка: создается динамически некий
> объект, ссылку на который могут получить другие процессы,
> и затем управлять этим объектом через наш процесс, причем
> объект должен быть уничтожен при первом же требовании какого
> либо из процессов, как следствие в других процессах ссылка
> превращается в мусор. Тут можно вести таблицу живых объектов,
> но лениво же :)
Фигня это полная.
Схватил объект, попользовался - отпусти.
trace (2007-06-26 16:25:00) [12]>THandle это не указатель
понимаю, но в данном случае используется как указатель, с таким же успехом мог бы написать LongWord или Pointer
>никак.
Благодарю, понятно...
>А зачем нужна эта бредятина?
ну к примеру ситуация с потолка: создается динамически некий объект, ссылку на который могут получить другие процессы, и затем управлять этим объектом через наш процесс, причем объект должен быть уничтожен при первом же требовании какого либо из процессов, как следствие в других процессах ссылка превращается в мусор. Тут можно вести таблицу живых объектов, но лениво же :)
Ega23 (2007-06-26 16:23:00) [13]
> Assigned?
А что Assigned? Он тупо на неравенство nil проверяет...
Anatoly Podgoretsky (2007-06-26 16:20:00) [14]> StriderMan (26.06.2007 16:10:08) [8]
Assigned мусор в золото не превращает
StriderMan (2007-06-26 16:10:00) [15]
> Anatoly Podgoretsky © (26.06.07 15:29) [4]
> Или мусор, чаще
+1 )))
Assigned?
Ega23 (2007-06-26 16:07:00) [16]
> как можно корректно определить, что за указателем есть объект,
> т.е. примерно что-то такое:
При удалении объекта приравнивай его указатель к nil.
Тогда всегда можно будет проверить if obj<>nil then ....
Desdechado (2007-06-26 15:57:00) [17]> Или мусор, чаще
Все равно адрес, только на свалке/бомжатнике.
oldman (2007-06-26 15:34:00) [18]
> var
> H: THandle;
> begin
> H := 565;
> if TObject(H).ClassType <> TButton then
> exit;
А зачем нужна эта бредятина?
Anatoly Podgoretsky (2007-06-26 15:29:00) [19]> Desdechado (26.06.2007 14:06:03) [3]
Или мусор, чаще
Desdechado (2007-06-26 14:06:00) [20]Указатель содержит просто адрес.