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...