最近需要制作一個(gè)C的插件,需要使用MATLAB代碼,所以想通過C語(yǔ)言調(diào)用MATLAB的動(dòng)態(tài)鏈接庫(kù)實(shí)現(xiàn)。以下實(shí)現(xiàn)過程參考了MATLAB的help~
編譯環(huán)境:MATLAB2014a、Visual Studio2010
- 首先,在MATLAB中新建一個(gè).m文件,命名為dll_test.m并保存,內(nèi)容如下:
function c = dll_test(a) %#codegen c = sqrt(a); end
-
使用codegen命令生成DLL:
這里先簡(jiǎn)單介紹一下codegen命令:
- 上一步成功之后在目錄./codegen/dll/dll_test下可以看到生成的所有文件。在VS2010下新建一個(gè)控制臺(tái)工程,將之前生成的依賴文件dll_test.dll拷貝到工程目錄下,并且添加一個(gè)c/c++文件到工程中,內(nèi)容如下:
#include "dll_test.h"
#include "dll_test_initialize.h"
#include "dll_test_terminate.h"
#include <stdio.h>
int main()
{
dll_test_initialize();
printf("%f\n", dll_test(25));
dll_test_terminate();
//gerchar();
return 0;
}
- VS默認(rèn)配置是Win32 Debug模式,根據(jù)你之前生成的DLL,選擇win32 Release還是x64 Release;
- 選中VS項(xiàng)目,右鍵->屬性,選擇C/C++ ->常規(guī)->附加包含目錄,添加目錄 ./codegen/dll/dll_test;選擇鏈接器->常規(guī)->附加庫(kù)目錄,添加路徑同上;選擇鏈接器->輸入->附加依賴項(xiàng),將dll_test.lib加入;確定;
- VS配置完成,完美運(yùn)行~
|