• QTCreater调用MatLab生成的.dll文件


    软件:
    MATLAB R2021b
    Qt Creator 4.12.2 (Community)

    1、Matlab部分
    定义matlab函数:

    function ans = FUNAdd(x,y)
        ans = x + y;
    end
    
    • 1
    • 2
    • 3
    mbuild -setup
    
    • 1

    在这里插入图片描述

    选择 mex -setup C++ -client MBUILD
    
    • 1

    在这里插入图片描述

    输入 deploytool 选择 Libary Complier
    
    • 1

    在这里插入图片描述

    选择要编译的.m文件
    
    • 1

    在这里插入图片描述

    选择Package 进行打包
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    将文件夹内的 .dll .h .lib文件复制出来
    
    • 1

    在这里插入图片描述

    2、QTCreater部分

    新建项目->选择MinGW 64-bit
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    将matlab生成的.lib .h .dll放到创建的QTCreater项目文件下
    
    • 1

    在这里插入图片描述

    添加外部库
    
    • 1

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    INCLUDEPATH += 'F:/Program Files/MATLAB/R2021b/extern/include'
    INCLUDEPATH += 'F:/Program Files/MATLAB/R2021b/extern/include/win64'
    
    win32: LIBS += -L'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64/' -llibmex
    win32: LIBS += -L'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64/' -llibmx
    win32: LIBS += -L'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64/' -llibmat
    win32: LIBS += -L'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64/' -llibeng
    win32: LIBS += -L'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64/' -lmclmcr
    win32: LIBS += -L'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64/' -lmclmcrrt
    
    INCLUDEPATH += 'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64'
    DEPENDPATH += 'F:/Program Files/MATLAB/R2021b/extern/lib/win64/mingw64'
    INCLUDEPATH += 'F:/Program Files/MATLAB/R2021b/extern/lib/win64'
    DEPENDPATH += 'F:/Program Files/MATLAB/R2021b/extern/lib/win64'
    
    
    ***F:/Program Files/MATLAB/R2021b/***  
    换成自己的Matlab路径
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    在这里插入图片描述

    右键->添加现有文件
    
    • 1

    在这里插入图片描述

    执行 构建->执行qmake
    
    • 1
    构建主函数代码:
    
    • 1
    #include  //引入头文件
    #include 
    #include 
    #include 
    #include 
    #include 
    using namespace std;
    int main(int argc, char *argv[])
    {
        if (!FUNAdd_NextInitialize()){ //初始化
            return -1;
        }
    
        QLibrary lib("FUNAdd_Next.dll"); //利用QLibrary加载.dll文件
    
        //定义变量
        mwArray x(1,1,mxDOUBLE_CLASS);
    
        mwArray y(1,1,mxDOUBLE_CLASS);
        x=205;
        y=15;
        mwArray ans(1,1,mxDOUBLE_CLASS);
        //输出参数个数,输出参数,输入参数。
        FUNAdd(1,ans,x,y);
    
        if (lib.load())
        {
    
           cout<<"success"<<endl;
           cout<<"x: "<<x<<endl;
           cout<<"y: "<<y<<endl;
           cout<<"ans: "<<ans<<endl;
        }
        else
        {
            cout<<"failed"<<endl;
        }
    
        return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41

    在这里插入图片描述
    在这里插入图片描述

    想要查看函数的参数 可以ctrl+点击函数
    
    • 1

    在这里插入图片描述

    欢迎点个赞👍,支持下哈~

  • 相关阅读:
    【图像处理OpenCV(C++版)】——初学OpenCV
    软件测试自学,这就技术你get了吗?
    1封开发信收获7个客户订单,怎么做到21%回复率的?(内涵英文邮件模板)
    【从头构筑C#知识体系】1.4 事件
    机器人过程自动化(RPA)入门 5. 处理应用程序中的控件
    区块链、隐私计算、联邦学习、人工智能的关联
    深度剖析Redis九种数据结构实现原理,建议收藏
    期货开户手机APP有哪些?
    混合牛奶 | 贪心算法 (USACO练习题)
    五分钟教你使用GitHub寻找优质项目
  • 原文地址:https://blog.csdn.net/Fight_adu/article/details/126083394