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

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值