надо обязательно указать Far, в противном случае компилятор потребует поставить точку с запятой после слова External. Как уже говорилось, подпрограмма вызывается по имени или по индексу. В нашем примере из библиотеки MyDLL вызывается подпрограмма с внешним именем 'MYPROC'. Если нужно сослаться на индекс подпрограммы, за именем библиотеки указывается слово index и индекс:
Procedure MyProc; Far; External 'MyDLL' index 2;
В этом случае имя, под которым подпрограмма будет известна программе, может не совпадать с ее внешним DLL именем.
Procedure MyProc; Far; External 'MyDLL' Name 'ExtName';
В это варианте предполагается, что экспортируется процедура с внешним именем ' EXTNAME'.
После любого из указанных выше объявлений экспортируемая подпрограмма становится доступна программе и может использоваться в ней как обычная подпрограмма на Паскале независимо от того, какой язык программирования использовали ее создатели.
В следующей программе используется библиотека SrArifm.
Program Raznost;
Const n = 10;
Type mas = array[1..n] of real;
procedure SrArif (x: mas; var sr:real); Far; External ‘SrArifm’ index 1 name ‘ARIFM’;
Var
a,b:mas;
i:integer;
dif, sr_a, sr_b : real;
begin
for i:=1 to n do read (a[i]);
for i:=1 to n do read (b[i]);
SrArif (a, sr_a);
SrArif (b, sr_b);
Dif:=sr_a — sr_b;
Writeln (dif);
End.
Похожие записи
- No related posts found