Эта ошибка возникает, когда вы вызываете функцию без правильных входных или выходных аргументов, или если есть ошибка в сигнатуре функции в заголовочном файле.
Для примера - сигнатура функции для addStructByRef
функция в shrlibsample
является:
[double, c_structPtr] addStructByRef(c_structPtr)
Загрузите библиотеку.
addpath(fullfile(matlabroot,'extern','examples','shrlib')) loadlibrary('shrlibsample')
Создайте структуру и вызовите addStructByRef
.
struct.p1 = 4; struct.p2 = 7.3; struct.p3 = -290;
Если вы вызываете функцию без входного параметра, MATLAB® отображает сообщение об ошибке.
[res,st] = calllib('shrlibsample','addStructByRef')
Error using calllib No method with matching signature.
Правильный вызов:
[res,st] = calllib('shrlibsample','addStructByRef',struct)