Некоторые разделяемые библиотеки, скомпилированные как Microsoft® Windows® 32-битные библиотеки, используют соглашение о вызовах, которое несовместимо с соглашением о вызовах MATLAB® по умолчанию. Соглашением о вызовах по умолчанию для MATLAB и для Microsoft C и компиляторов C++ является cdecl
. Для получения дополнительной информации см.
статью Calling Conventions MSDN®.
Если ваша библиотека использует различное соглашение о вызовах, создайте прототипный файл loadlibrary
и измените его с правильными настройками, как описано в статье MATLAB Answers™, Почему MATLAB отказывает, когда я делаю вызов функции на DLL в MATLAB 7.6 (R2008a)?