Наверное, ошибка заключается в том, что используются одни и те же переменные для определения функции и при вызове функции. Получается, что при таком вызове функции мы должны дважды определить переменные: в начале эксперта: double Массив1[], Массив2[]; int Сдвиг, Расхождение, Глубина; а затем при подключении dll: #import "моя_библиотека.ex4" int ПроверкаПерекрещивания(double Массив1[],double Массив2[],int Сдвиг,int Расхождение,int Глубина); #import На мой взгляд, при вызове функции необходимо использовать набор переменных с другими именами. Например: int Крест = ПроверкаПерекрещивания(xМассив1[], xМассив2[], xСдвиг, xРасхождение, xГлубина); Или вообще не указывать переменные при подключении библиотеки: #import "моя_библиотека.ex4" int ПроверкаПерекрещивания(double, double, int, int, int); #import Кстати, встречный вопрос: у меня при подключении dll выпадает ошибка 'cannot call function *** from *.dll' (error 127). Что это за ошибка такая 127? В документации кода такой ошибки нет... dll скомпилирована из C++ 5.0 и сидит в папке experts\libraries.