Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我正在使用calllib从matlab访问外部DLL。 DLL中包含一个函数,其签名如下所示:
typedef struct resultStruct { double E; double W; double N; double S; double Z; double Y; } RESULT_STRUCT; typedef struct inputStruct { double A; double B; double C; } INPUT_STRUCT; RESULT_STRUCT calc( const INPUT_STRUCT* input); 当我尝试在Matlab中调用它时, loadlibrary('calc.dll','calc.h'); input.A = 1; input.B = 2; input.C = 3; [res, st] = calllib('calc','calc',input); 我得到错误: ??? Error using ==> calllib The function return type is not supported. 出人意料的是,谷歌在该错误消息上未显示任何匹配,并且calllib的文档中没有任何内容: http : //www.mathworks.com/help/techdoc/ref/calllib.html 我的猜测是,由于函数正在返回结构,因此matlab会呕吐。但是文档中没有任何建议。尽管matlab没有提供任何示例,但都包含结构作为输出变量。 回答: 我怀疑与您相同,即MATLAB不喜欢struct返回类型。尝试返回一个简单的类型,看看是否可行。然后,我建议与出色的MATLAB支持人员联系。 更多&回答... |
![]() |
![]() |