下面以壹個簡單的小例子演示Matlab調用DLL的過程:
1、編譯器準備
在Matlab的命令窗口輸入:mex -setup
選擇妳的編譯器,我的是:
[2] Microsoft Visual C++ 2008 SP1 in c:\Program Files\Microsoft Visual Studio 9.0
2、編寫妳自己的DLL
在Visual Studio 2008中新建壹個Win32的Dll工程,不妨設名字為MatlabDllTest
編輯MatlabDllTest.cpp:
#include "MatlabDllTest.h"
double add(double x, double y)
{
return (x+y);
}
編輯MatlabDllTest.h:
#ifndef MATLABDLLTEST_H
#define MATLABDLLTEST_H
#ifdef __cplusplus
extern "C"
{
#endif
__declspec(dllexport) double add(double x, double y);
#ifdef __cplusplus
}
#endif
#endif
3、加載DLL:把編譯連接之後產生的MatlabDllTest.dll和MatlabDllTest.h文件拷貝到Matlab的當前工作目錄下,輸入
loadlibrary('MatlabDllTest','MatlabDllTest.h');
(壹定要有這步,如果dll不成功,會顯示錯誤原因)
4、查看DLL中導出的函數
libfunctions MatlabDllTest -full
-full選項會列出導出函數的詳細輸入和輸出參數,這是輸出信息如下:
Functions in library MatlabDllTest:
double add(double, double)
5、調用函數
calllib('MatlabDllTest', 'add', 1.3, 4.6)
此時就會輸出正確的結果
ans =
5.9000
總結:這個例子比較簡單,只是為了演示整個過程,如果真的用到了Matlab來調用外部DLL的這種方式的話,就要註意DLL工程要符合Matlab的要求,詳細信息請自己查看Matlab的幫助文件。