如果对任何函数有任何引用,在visual studio中编译的mexFunction会导致MATLAB崩溃

时间:2017-04-04 15:27:08

标签: matlab mex

Hello StackOverflow社区

我在Visual Studio 2013中实现了一个非常基本的mexFunction。我可以编译一个空的mexFunction,如下所示,当我在MATLAB中测试它时,它完美地工作:

#include "mex.h"
void mexFunction(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
{

}

但是,当我输入任何函数时,编译仍然成功,但当我尝试在MATLAB中运行时,MATLAB崩溃。

#include "mex.h"
void mexFunction(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
{
    const char* message = "Hello World";
    mexPrintf(message);
}

这是人类可能的基本示例,它会导致MATLAB崩溃。它不使用我提供的任何输入。我尝试了0输入到3个输入:

cfg.i = 1;
cfg.o = 2;
cfg.p = 3;
mcx(cfg);

mcx是visual studio编译的mex函数的名称。在重新编译mexFunction之前,我清除了整个文件夹。任何有关此问题的帮助都会非常有用。

此代码的编译是成功的,但也崩溃了MATLAB:

    #include "mex.h"
void mexFunction(int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[])
{
    mexPrintf("test");
}

0 个答案:

没有答案