zoukankan      html  css  js  c++  java
  • VS/QT -- 调用matlab生成的DLL库

    matlab生成dll的方法之前有些,这篇是C++调用dll的流程:

    配置环境:

    1、新建vc工程,设置runtime引用头文件及相关库,将生成的dll,lib,.h文件拷贝至工程目录,将.h文件添加至工程。QT里在.pro文件里加上lib路径,在debug文件里加上dll;

     

     其中,mclmcrrt.lib是runtime库,fitCircuit.lib是导出的库。

    2、调用

    (1)通过runtime调用matlab导出的dll,需要初始化环境,因此要在程序启动时调用初始化环境函数,此函数定义在matlab头文件mclmcrrt.h中,注意此函数只能在程序启动时调用一次,调用多次会出错。

    if( false == mclInitializeApplication(NULL, 0))  //testmatInitialize()是Matlab自动生成的初始化函数,调用函数之前必须先初始化
        {
            qDebug()<<"fail";
            return FALSE;
        }

    (2)程序退出时结束环境

    TerminateApplication();

    2.1、调用函数

    查看上边matlab生成的头文件:testmat.h

    依次调用如下三个函数实现对应功能:

    // 函数初始化
    bool MW_CALL_CONV testmatInitialize(void);
    // 目标函数
    extern LIB_testmat_CPP_API void MW_CALL_CONV testmat(int nargout, mwArray& R, const mwArray& XY_data);
    // 结束函数
    void MW_CALL_CONV testmatTerminate(void);

    其中nargout是函数准备输出参数的个数,由函数实际情况决定,nargout参数赋值为1,表示只输出一个参数。

  • 相关阅读:
    Docker容器操作
    Docker的镜像操作
    CentOs安装Docker
    超长字符串
    编程之美-2.11 扩展 寻找距离最远的两个点
    编程之美-2.8 找到符合条件的整数
    编程之美-2.4 1的数目
    编程之美-1.16 24点游戏
    logistic回归 c++ 实现
    朴素贝页斯分类法 c++实现
  • 原文地址:https://www.cnblogs.com/zzzsj/p/14636235.html
Copyright © 2011-2022 走看看