主要通过
mex
将matlab代码编译成C/C++动态链接库(dll)
- 编写matlab函数
- 设置编译器
mex -setup
- 编译matlab代码
mcc -C -W cpplib:multiTen -T link:lib multiTen.m
- 配置动态链接库
注意,ctf文件也要拷入到项目中,否则会出现初始化失败,程序崩溃现象 - 代码调用
%matlab
function [ output_args ] = multiTen()
num=100;
output_args=num*10;
end
//c++
#include<iostream>
#include"multiTen.h"
using namespace std;
int main()
{
bool f=multiTenInitialize();
cout << f << endl;
mwArray res;
multiTen(1, res);
cout << res << endl;
cin.get();
return 0;
}
-
结果
存在的问题
在vs2015中,生成解决方案后,执行程序会发生内存冲突问题
解决方案
用vs2015生成exe文件后,在命令行中运行,不会导致程序崩溃,目前原因不知道,可能是vs和matlab版本问题
参考链接