Форум: "WinAPI";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизЗапуск процедуры по указателю Найти похожие ветки
← →
Колбасьев © (2004-07-03 12:21) [0]Вроде бы в Object Pascal нет встроенных средств работы с процедурами, переданными по указателю (дана точка входа).
Сейчас пишу на ассемблере процедурку, но может кто подскажет готовое решение.
← →
MBo © (2004-07-03 12:25) [1]Procedural types в хелпе
← →
Anatoly Podgoretsky © (2004-07-03 12:25) [2]Есть
← →
Digitman © (2004-07-03 12:27) [3]type
TMyProc = procedure(a: Integer);
..
procedure MyRealProc(a: Integer);
begin
...
end;
..
var
MyProc:= TMyProc;
..
MyProc := @MyRealProc; //расчет адреса точки входа
MyProc; // собственно вызов
или ты не об этом ?
← →
Колбасьев © (2004-07-03 12:29) [4]А нет, чтобы @MyRealProc, но бы предопределенного процедурного типа:
type
TMyProc = procedure(a: Integer);
;-)
← →
Колбасьев © (2004-07-03 12:37) [5]Выше вместо "бы" читать "без" ;-)
← →
VMcL © (2004-07-03 12:38) [6]>>Колбасьев © (03.07.04 12:29) [4]
1. Компилятор по-твоему что - должен угадывать количество и тип передаваемых параметров?
2. Pointer - ?
← →
Digitman © (2004-07-03 12:39) [7]
> Колбасьев © (03.07.04 12:29) [4]
> А нет, чтобы @MyRealProc, но бы предопределенного процедурного
> типа:
> type
> TMyProc = procedure(a: Integer);
> ;-)
что-то я не понял тебя ..
TMyProc и есть предопределенный тобой процедурный тип
← →
Digitman © (2004-07-03 12:47) [8]да пожалуйста !
procedure MyRealProc1(a: Integer); stdcall;
begin
...
end;
procedure MyRealProc2(a, b: Integer); cdecl;
begin
...
end;
procedure MyRealProc3(a, b, с: Integer);
begin
...
end;
..
var
MyProc: Pointer;
..
MyProc := @MyRealProc1;
asm
push 1
call dword ptr [MyProc];
end;
..
MyProc := @MyRealProc2;
asm
push 2 //параметр b
push 1 //параметр a
call dword ptr [MyProc]
add esp, 8
end;
..
MyProc := @MyRealProc3;
asm
mov eax, 1 //параметр a
mov ecx, 2 //параметр b
mov edx, 3 //параметр c
call dword ptr [MyProc]
end;
← →
Digitman © (2004-07-03 12:51) [9]
> Колбасьев © (03.07.04 12:37) [5]
предопределение процедурных и функциональных типов для того и придумано, чтобы ты не занимался мазохизмом, а переложил заботу о нудных проверках типов на могучие плечи компилятора
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.057 c