Форум: "Основная";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
ВнизCallBack Найти похожие ветки
← →
y-soft (2001-12-15 10:29) [24]>Eugene Zelikovsky ©
Пояснения:
Библиотека совсем не обязана знать тип нашего объекта, поэтому просто передаем нетипированный указатель при вызове процедуры из библиотеки. Есть языки, в которых вообще отсутствуют ссылочные типы - в этом случае стоит приводить указатель на наш объект к Integer.
procedure TMyObject.CallSomeProc;
begin
SomeProc(Self, @MyCallback);
end;
В коде Dll:
procedure SomeProc(Reference : pointer; MyCbk : TMyCallback); stdcall;
begin
//...Какие-то действия
MyCbk(Reference); //Вызов Callback
end;
Соответственно в обработчике процедуры обратного вызова производим явно обратное приведение типов
procedure MyCallback(Reference : pointer); stdcall;
begin
TMyObject(Reference).SomeMethod; //вот здесь!!!
end;
В COM/DCOM, кстати, для аналогичных целей используются совершенно иные механизмы
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c