查看: 520|回复: 0|关注: 0

[未答复] matlab如何调用缺少.h的dll,dll的函数定义已知

[复制链接]

新手

25 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
发表于 2019-8-7 20:47:35 | 显示全部楼层 |阅读模式
本帖最后由 请问恻然 于 2019-8-7 20:47 编辑

最近老师让我利用matlab编写用于控制试验作动器的程序,其中需要调用动态链接库,但是这个dll文件没有对应的头文件,只有相关的函数定义。

这是厂家给的函数定义:
procedureSetCom;     设置串口(端口及波特率)设置控制通道数,打开串口前需要时使用
stdcall;external' popwilC8J1.dll';


procedure OpenCom;      打开串口,程序进入时调用
stdcall;external' popwilC8J1.dll';


procedure CloseCom;   关闭串口 程序退出时调用
stdcall;external' popwilC8J1.dll';


Function  GetComState:byte; stdcall;    //串口状态      =0 串口正常打开
stdcall;external'popwilC8J1.dll';
功能  返回串口连接状态        返回值=0 串口打开正常           返回值<>0 串口打开失败

ProcedureSetLoadN(Chan:Byte;Val:single);
stdcall;external'popwilC8J1.dll';
功能:设置某通道的试验力       Chan 通道         val 试验力

ProcedureSetLoadS(Chan:Byte;Val:single);
stdcall;external'popwilC8J1.dll';
功能:设置某通道的位移          Chan 通道         val 位移

ProcedureSetCtrlState(Chan:Byte;Val:integer);
stdcall;external'popwilC8J1.dll';  
功能:设置某通道的控制状态     Chan 通道        val 状态值

FunctionGetCtrlPos(Chan:Byte):single;
stdcall;external'popwilC8J1.dll';
功能:或取某通道的控制目标        Chan 通道    返回值 目标值 (目标值是力或位移 由CtrlMode参数决定,CtrlMode=1表示试验力 ,CtrlMode=0 表示位移)


FunctionGetCtrlMode(Chan:Byte):integer;
stdcall;external'popwilC8J1.dll';
功能:获取某通道的控制模式  Chan 通道      返回值 控制模式      返回值=0    位移控制模式     返回值=1    试验力控制模式


FunctionGetCtrlState(Chan:Byte):Integer;
stdcall;external'popwilC8J1.dll';
功能:获取某通道的控制状态  Chan 通道       返回值 控制状态


这是我照着网上头文件格式自己模仿的一个头文件,但是matlab调用就出错或者干脆直接崩溃
#ifndef POPWILC8J1_H
#define POPWILC8J1_H
#ifdef __cplusplus

extern "C" {
#endif
#define API_DEC __declspec(dllexport)
API_DEC void SetCom(void);
API_DEC void OpenCom(void);
API_DEC void CloseCom(void);
API_DEC int GetComState(void);
API_DEC void SetLoadN(int Chan, float Val);
API_DEC void SetLoadS(int Chan, float Val);
API_DEC void SetCtrlState(int Chan, int Val);
API_DEC float GetCtrlPos(int Chan);
API_DEC int GetCtrlMode(int Chan);
API_DEC int GetCtrlState(int Chan);
#ifdef __cplusplus
}

#endif

#endif

我这种情况要如何正确调用dll呀,各位论坛大佬帮帮忙。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表