Выполнение процедуры по адресу



Автор: Peter Below


var
  F: procedure(x, y: double);

@F := GetProcAddress(hDLL, 'SOMEPROC');
F(3, 4);

Ключом здесь является использование оператора @, располагаемого с левой части процедурной переменной. Он говорит компилятору: "Не волнуйтесь здесь о совместимости типов, просто присвойте полученный в правой части выражения адрес переменной в левой части выражения (и процедурные переменные являются переменными-указателями).