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