mfc调matlab,VS2019的MFC程序,即C++调用matlab的自定义函数(动态链接库)配

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项目文件第一个目录下

62ff5eca02d1f09ca120e6d2080282a6.png

2)在项目头文件处,添加A.h文件。

右键->添加现有项->找到文件添加

c1e4835512ff7785c95b355ea37e55c9.png

在需要调用函数的窗口对应.cpp文件中写入A.h头文件。

#include "A.h"

3)打开项目属性,配置链接库等。

项目->Test属性->VC++目录->添加包含目录和库目录

6477b4d167a71c45fb4b88139995ba13.png

包含目录有下面四个:在matlab安装目录下

c9c286e99c71716e480e8ba343ec9d91.png

库目录有三个:

d5113429839d8fab3cb381df5b82d3cf.png

添加之后,再添加链接库。

项目->Test属性->输入->附加依赖库

3498b53d3c2be4c8703b3d3f5d297fff.png

依赖库如下:

libmx.lib;libeng.lib;libmat.lib;A.lib;libmex.lib;mclmcr.lib;mclmcrrt.lib;

添加完成之后,点击确定即可。

4)更改32位为64位。

因为刚开始创建的时候,是32位的,但是matlab是64位的,所以将MFC变成64的。

项目->属性->配置管理器->活动解决方案平台、平台

如图。

911d5cc6ec2558d59ae67198d33ff4fc.png

(3)MFC中调用matlab

创建了一个加法器,实现两个数相加,出来结果。

95ccb8f34115689a4447aa2a6e26bb12.png

代码:

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的自定义函数(动态链接库)配相关教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值