1创建动态链接库
平台vs2017
编写程序
cal.h文件
#ifndef _CAL_H
#define _CAL_H
typedef struct hello
{
double add1;
double add2;
double sum;
}hello;
#define DLLEXPORT __declspec( dllexport )
DLLEXPORT void add(hello * x, double a, double b);
#endif
cal.c文件
#include "cal.h"
DLLEXPORT void add(hello * x, double a, double b) {
x->add1 = a;
x->add2 = b;
x->sum = x->add1 + x->add2;
}
为了方便后续操作,这里设置输出目录为D:\program\matlab\ACC\bin
然后编译
2编写matlab脚本文件
if ~libisloaded('cal')
addpath(fullfile('D:\program\matlab\ACC\bin'))
loadlibrary('cal') %加载共享库
end
sss.add1 = 3;sss.add2 = 4;sss.sum = 0;
s = libstruct('hello',sss); %创建结构体对象并初始化
p = libpointer('hello',s); %创建指针对象并初始化
calllib('cal','add', p, 5, 6); %调用共享库中的函数
get(p,'value');
运行脚本
观察结果