![]() |
Matlab的calllib中的错误“不支持函数返回类型”是什么意思?
我正在使用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的文档中没有任何内容: [URL="http://www.mathworks.com/help/techdoc/ref/calllib.html"]http[/URL] : [URL="http://www.mathworks.com/help/techdoc/ref/calllib.html"]//www.mathworks.com/help/techdoc/ref/calllib.html[/URL] 我的猜测是,由于函数正在返回结构,因此matlab会呕吐。但是文档中没有任何建议。尽管matlab没有提供任何示例,但都包含结构作为输出变量。 [B]回答:[/B] 我怀疑与您相同,即MATLAB不喜欢struct返回类型。尝试返回一个简单的类型,看看是否可行。然后,我建议与出色的MATLAB支持人员联系。 [url=https://stackoverflow.com/questions/4609983]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 23:28。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.