Здравствуйте! Подскажите, кто знает, как решить нижеописанную проблему. Итак... в BlackBox набран следующий модуль:
## Код:
```
MODULE MyDll;
     (* sample module to be linked into a dll *)

      PROCEDURE ArrayIncrement*(VAR x: ARRAY OF INTEGER);
      VAR i: INTEGER;
      BEGIN
          FOR i := 0 TO LEN(x) - 1 DO
            INC(x[i]);
         END;
      END ArrayIncrement;
      
     END MyDll.
```

Откомпилирован он в статическую dll командой
## Код:
```
DevLinker.LinkDll
MyDll.dll := MyDll# ~
```

В программе на Delphi 7 процедура ArrayIncrement объявлена как
## Код:
```
PROCEDURE ArrayIncrement(VAR x: array of integer); stdcall; external 'MyDll.dll';
```

Использующая процедуру ArrayIncrement процедура:
## Код:
```
procedure TForm1.Button2Click(Sender: TObject);
var i: integer;
    a: array [0..4] of integer;
begin
  for i:= 0 to 4 do
  begin
      a[i] := 0;
  end;
  ArrayIncrement(a);
end;
```

При вызове ArrayIncrement(a); генерируется исключение "External exception C000001D".
Как исправить эту ошибку? Как правильно передавать параметры в процедуры Компонентного Паскаля из процедур, написанных на других языках? Почему НИГДЕ не описан способ передачи параметров в Обероноподобных языках?