C 呼叫matlab生成的dll

2021-10-01 20:30:42 字數 1076 閱讀 4697

vs呼叫matlab生成的dll

一、 程式設計環境 

vs2012 ultimate 

matlab2012a 32位

二、 matlab程式轉dll 

1. matlab程式簡單例項

% myadd.m

function [result] = myadd(a,b)

result = a + b;

end2. 轉dll步驟

 命令列中輸入:mbuild–setup,再選擇編譯的環境;

 命令列中輸入:mcc -w cpplib:libmyadd -t link:lib myadd

 生成多個檔案,有用的檔案為libname.lib、libname.h、libname.dll,切記libname.cpp

只是參考用的,不要加入到vs專案裡面。

三、vs工程建立

1、包含庫及鏈結庫設定

右鍵專案-屬性,在彈出的介面中:

在【c/c++選項】中:

 【包含目錄】中新增:d:\matlab\extern\include;

 【庫目錄】中新增:d:\matlab\extern\lib\win32\microsoft;

在【鏈結器】選項中:

 【常規-附加庫目錄】中新增:d:\matlab\extern\lib\win32\microsoft;

 【輸入-附加依賴項】新增:libmyadd.lib;mclmcr.lib;libeng.lib;libmat.lib;libmex.lib;libmx.lib;mclmcrrt.lib;

注意:1、一定要新增libmyadd.lib

2、根據參考參考鏈結3,貌似只新增libmyadd.lib(自己生成的庫)和mclmcrrt.lib也是可以的。

2、呼叫matlab的dll程式例項

#include

#include 「libmyadd.h」

using namespace std;

int main()

三、執行生成的exe

執行前,需要把libname.lib、libname.h、libname.dll放在exe所在資料夾。

matlab呼叫VS生成的DLL

vs配置管理器是debug版本,將程式生成動態鏈結庫,在matlab呼叫時,彈出assert failed對話方塊,不知道為何會彈出錯誤,一開始以為是記憶體洩露,使用visual leak detector工具對記憶體進行了洩露檢測,發現有記憶體洩露,以為是記憶體洩露造成的,將記憶體洩露進行修復,結...

C 呼叫Matlab生成的dll方法的詳細說明

需要的工具 vs2005及以上版本,matlab2008b及以上版本,另外非常重要的需要安裝乙個matlab compiler runtime,這個檔案 mcrinstall.exe 在安裝完matlab之後就會在安裝資料夾下存在,需要搜尋一下 因為不同版本的matlab可能存放位置不同 把它安裝一...

C 生成dll呼叫

用visual c 生成的dll檔案已經和以前的dll檔案有了本質上的區別。用visual c 生成的dll檔案在程式設計中更多的表現為一種類 class 或者類庫 class library 製作乙個元件 1.首先建立乙個新類庫工程檔案 file new project visual c proj...