VS2019的MFC程序,即C++调用matlab的自定义函数(动态链接库)配
VS2019的MFC程序,即C++调用matlab的自定义函数(动态链接库)配置与使用详情
(1)编译B.m文件
1)第一次编译matlab的.m文件需要执行下列代码选择编译器,在matlab的bin文件下,打开cmd命令(rem表示注释):
rem 选择编译器,若该步骤不成功则可能matlab缺少需要对应VS版本的配置文件而检测不到编译器(matlab2018检测不到VS2019),点击https://blog.csdn.net/sky130054/article/details/107670672
mex -setup C++
2)在matlab编写的.m文件目录中打开cmd命令,输入下列代码:
rem 生成相关文件,A表示生成.h、.lib、.dll文件名,B表示.m文件名
mcc -W cpplib:A -T link:lib B.m
(2)配置环境
1)将生成的下列【.dll .h .lib】文件放入MFC项目文件第一个目录下
2)在项目头文件处,添加A.h文件。
右键->添加现有项->找到文件添加
在需要调用函数的窗口对应.cpp文件中写入A.h头文件。
#include "A.h"
3)打开项目属性,配置链接库等。
项目->Test属性->VC++目录->添加包含目录和库目录
包含目录有下面四个:在matlab安装目录下
库目录有三个:
添加之后,再添加链接库。
项目->Test属性->输入->附加依赖库
依赖库如下:
libmx.lib;libeng.lib;libmat.lib;A.lib;libmex.lib;mclmcr.lib;mclmcrrt.lib;
添加完成之后,点击确定即可。
4)更改32位为64位。
因为刚开始创建的时候,是32位的,但是matlab是64位的,所以将MFC变成64的。
项目->属性->配置管理器->活动解决方案平台、平台
如图。
(3)MFC中调用matlab
创建了一个加法器,实现两个数相加,出来结果。
代码:
void CMTLTESTDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
int a1, b1, sum;
a1 = GetDlgItemInt(IDC_EDIT1);
b1 = GetDlgItemInt(IDC_EDIT2);
if (!AInitialize())//初始化
{
CString s;
s = "未连接";
AfxMessageBox(s);
}
mwArray a(1, 1, mxINT32_CLASS);
mwArray b(1, 1, mxINT32_CLASS);
mwArray c(1, 1, mxINT32_CLASS);
a.SetData(&a1, 1);
b.SetData(&b1, 1);
Test_add(1, c, a, b);
sum = c.Get(1, 1);
SetDlgItemInt(IDC_EDIT3, sum);
ATerminate();
}
————————————————
版权声明:本文为CSDN博主「Foneone」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/foneone/article/details/88068637
VS2019的MFC程序,即C++调用matlab的自定义函数(动态链接库)配相关教程