Я реализовал комплекс mexFunction
используя Visual Studio 2012 и успешно интегрировал его с Matlab. (давайте назовем это mexFunctionA.mexw32
)
Когда я запускаю эту команду в командном окне matlab, я получаю ожидаемые результаты:
mexFunctionA("My1Argument", "My2Argument");
Теперь мне нужно разработать mexFunctionB
что вызывает mexFunctionA
; mexFunctionB
это просто, как это может быть.
С код, который я пытаюсь (внутри mexFunctionB.c
) является:
#include "mexFunctionA.mexw32"
(...)
static void mdlOutputs(SimStruct *S, int_T tid)
{
mexFunctionA("My1Argument", "My2Argument");
}
(...)
Эта строка кода не компилируется.
Командная строка, которую я использую:
mex -v mexFunctionB.c -I'C:\patchToMexFunctionA' -L'C:\patchToMexFunctionA' 'mexFunctionA.mexw32'
Итак, вот возможные ошибки:
#include
метод неверен.Кто-нибудь знает, как это исправить?
Код, который вы даете, не имеет смысла. .mexw32
файлы являются динамически связанными библиотеками (т.е. библиотеками DLL) и в коде C #include
Заявления не используются для включения DLL.
Во-первых, обратите внимание, что в отношении вашей S-функции mexFunctionA
ничем не отличается от любой другой функции MATLAB. Итак, вопрос, который вы должны задать: «Как вызвать функцию MATLAB из файла mex?».
Ответ на это заключается в использовании функции mexCallMATLAB.
Короче нужно убрать #include
и переформатировать вызов mexFunctionA
в форму, требуемую mexCallMATLAB
,
Других решений пока нет …