任务类别:
通常出现在项目中,使用 Matlab 设计算法,最后应用于 Qt 的应用程序中。
配置Vs2008环境:(PS:这里应该也同样能应用于其它版本)
一. 设置matlab库目录
- 选择“可执行文件”下拉框,添加:" ###\MATLAB\R2015b\bin\win32 "
(PS:###表示你自己安装的matlab根目录) - 选择“包含文件”下拉框,添加:###\MATLAB\R2015b\extern\include
- 选择“引用文件”下拉框,添加:###\MATLAB\R2015b\extern\lib
- 选择“库文件”下拉框,添加:###\MATLAB\R2015b\extern\lib\win32\microsoft
上述环境只需要配置一次
二. 添加项目的附加依赖项(注意配置:Debug/Release)
libmex.lib
libmx.lib
libmat.lib
mclmcrrt.lib
使用matlab生成动态链接库
- 输入 deploytool 打开开发者工具,再点击 Library Compiler
- 打开后如下图所示,选择自己需要转化的 .m文件(必需是函数),Package即可
- 得到相应的文件
使用动态链接库
- 先将转化后的文件放入项目中,其中根目录文件夹下需要放置使用对象的 .dll文件
- 设置项目中的附加包含目录
- 在代码中使用,初始化
#include "mclmcrrt.h"
#include "*.h"
#pragma comment( lib, "*.lib" )
其中 * 表示你转换的动态链接库名称,比如我用上面生成的就应该是
#include "mclmcrrt.h"
#include "DJCalQ.h"
#pragma comment( lib, "DJCalQ.lib" )
初始化函数:
mclInitializeApplication(NULL,0);
DJCalQInitialize();
/*
* 使用代码
*/
DJCalQTerminate();
mclTerminateApplication();
具体怎么使用有一篇博文比较详细:Qt与Matlab混合编程中mwArray数组使用详解
注意上述初始化需要成对出现且对称,否则会出现一些意料之外的惊喜(Bug)!