![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблемы с абстрактными методами [D7, Win2k]
NewDelpher © (2004-10-05 14:37:00)есть у меня класс
TClassAb = class
public
procedure my_method; dynamic; abstract;
end;
есть его наследник:
TMyClass = class(TClassAb)
public
procedure my_method; override;
end;
есть процедура:
procedure test(cl: TClassAb);
begin
cl.my_method;
end;
и объект:
var MyClass: TMyClass
Когда делаю вызов в модуле test(MyClass) всё замечательно работает, но стоит только поместить этуprocedure testв DLL-шку происходит AV при обращении к ней... Что я неправильно делаю?
KSergey (2004-10-05 15:06:00) [21]Вообще экземпляры объектов, конечно, лучше бы не передавать...
К стати, что в этом my_method? Более того, если пустить в отладчике - рубится прямо на вызове или все же внутри метода? Надо бы уточнить...
Ну и, надеюсь. описания классов идентичны для dll и хост-приложения? ;)
> [5] NewDelpher © (05.10.04 15:03)
> > Суслик © (05.10.04 14:58) [3]
> > sharemem в uses есть?
> нет, а что?
Читаем комментарии к проекту dll, вот что ;)
Хотя пока об этом рано еще говорить, может и не в том дело
NewDelpher (2004-10-05 15:03:00) [22]
> Суслик © (05.10.04 14:58) [3]
> sharemem в uses есть?
нет, а что?
NewDelpher (2004-10-05 15:02:00) [23]
> KSergey © (05.10.04 14:52) [2]
> Думаю ключевые слова "но стоит только поместить эту procedure
> test в DLL-шку".
вот код из DLL:
lybrary dll_pro;
uses LybraryClass; // это модуль, который абстрактный класс содержит
procedure test(Cl: TClassAb); export;
begin
Cl.my_method;
end;
exports test name 'Тестовый';
begin
end.
/CODE>
Вроде ничего криминального...
Суслик (2004-10-05 14:58:00) [24]sharemem в uses есть?
KSergey (2004-10-05 14:52:00) [25]Боюсь проблема совершенно в другом месте, надо подробнее смотреть что там и как.
Уберите все эти иерархии - боюсь, проблема останется. Не там роете, по-моему.
KSergey (2004-10-05 14:52:00) [26]Думаю ключевые слова "но стоит только поместить эту procedure test в DLL-шку".