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,表示只輸出一個參數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM