当我创建一个项目以将图像的路径传递给我的matlab项目并创建初始化时:
#include "feautresPoints.h"
int main(int argc, char* argv[])
{
mxArray* result;
mxArray* x;
double myArray[5]={10.2, 3, 6.3, 5.4, 5.9};
x=mxCreateDoubleMatrix(1, 5, mxREAL);
memcpy(mxGetPr(x), myArray, 5 * sizeof(double));
feautresPointsInitialize();
feautresPointsTerminate();
return 0;
}
它给我3个错误
错误1
错误2
错误3
那么我该如何解决这些错误呢?
我将在编译过程中生成的matlab项目库包含在C++项目和libmx.lib中,还添加了matlab的包含文件,还为其他库目录添加了matlab库
最佳答案
您需要为链接程序包括MATLAB库。以我为例:“C:\ Program Files \ MATLAB \ MATLAB编译器运行时\ v714 \ extern \ lib \ win32 \ microsoft *”
另外,您没有正确初始化MATLAB环境,请参见MATLAB帮助中的“使用mclInitializeApplication和mclTerminateApplication初始化和终止应用程序”。
mxArray* result;
mxArray* x;
mclInitializeApplication(NULL,0);
feautresPointsInitialize();
/* Your c++ code here */
feautresPointsTerminate();
mclTerminateApplication();
return 0;
注意
feautresPointsInitialize()
将返回一个bool
,指示所有内容均已初始化,您应进行检查。