我的项目是用 C++ 编写的。我想nonlinsq
通过“eval”通过matlab引擎使用matlab优化。我想以以下格式传递我用 C++ 编写的函数
void func(int nlhs, mxArray *plhs[], int nrhs, mxArray *prhs[])
将 matlab 作为函数句柄而不将其编译为 mex。
我尝试按照将 C/C++ 回调传递到 matlab 引擎来创建 mxArray,然后将其传递到 matlab 工作区:
mxArray *fh = mclCreateSimpleFunctionHandle(func);
engPutVariable(engine, "func", fh);
mxDestroyArray(fh);
但程序在第一行因访问冲突而崩溃。在调用堆栈中,违规前的最后一次调用是“mclmcrrt8_5.dll!000000000031dacd() Unknown”
问题是什么?..