![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как передать процедуре из DLL процедуру в качетсве параметра. [D7, WinXP]
ПсихЪ © (2004-06-16 11:22:00)Мастера, подскажите...
Есть DDL'ка, написанная на С++, в DLL'е имеется VOID'овая функция PluginDescription, параметром которой является процедура (или скорее указатель на процедуру). В этой функции эта процедура запускается с определёнными параметрами. Процедура в параметре имеет свой какой-то тип. Я знаю все его структуру (unsign long, char*, long).
Создаю в Delphi процедуру с такой же структурой параметров, но как её передать? Пытался делать тип:
type
PTYPE_NAME = ^TYPE_NAME;
TYPE_NAME = procedure ( p1 : cardinal, p2 : string, p3: int );
Но как тогда присвоить переменной этого типа созданную мной процедуру. При попытке это сделать обычным способом и способом с преобразованием типа выдаётся ошибка:
ProcVar : PTYPE_NAME;
присваиваем
ProcVar := PFNREGMETHOD(@fpfnRegMethod);
или
ProcVar := @fpfnRegMethod;
ошибка
Variable required
Как быть? Я, похоже, понамудрил там лишнего, но до истинытак и не добрался...
Digitman (2004-06-16 12:13:00) [1]type
TMyProc = procedure (p1: cardinal, p2: PChar, p3: integer); stdcall; //соглашение о вызове нужно уточнять
..
procedure MyProc(p1: cardinal, p2: PChar, p3: integer); stdcall;
begin
..
end;
..
ProcVar : TMyProc;
..
ProcVar := @MyProc;
ПсихЪ (2004-06-16 11:38:00) [2]
> clickmaker
Не помогает, пробовал... ): Пробавал даже просто
array of char
Тоже не так...
clickmaker (2004-06-16 11:26:00) [3]TYPE_NAME = procedure ( p1 : cardinal, p2 : PChar, p3: integer );