EDA365电子论坛网

标题: Matlab调用fortran dll遇到问题? [打印本页]

作者: uerriup    时间: 2020-9-11 16:06
标题: Matlab调用fortran dll遇到问题?
在网上看了很多调用例子,全部都实现成功了,但是这些例子的fortran程序全都是用来计算实数的,我的fortran程序用来计算复数,程序如下
) A0 }7 t. a, g/ |2 ~5 B       subroutine test(c,a,b)  6 G3 m) z' s$ n+ L* U+ u  ~5 [
       complex::a,b,c
/ h: A- l, b/ m; ~# r1 v# O; a       c=a+b" `# d$ O, m, M. v: U+ z+ _$ c
       end subroutine6 N: U3 h! S3 S% I

- w6 q# n; A3 B) \, d/ p! ?生成bcd.dll文件5 `( i6 h- t0 y7 h
头文件 abc.h 程序是  void test(double*,double*,double*);
5 j' N5 @2 R% X. u" cmatlab的.m程序如下a=3;b=1024;c=0;' q% [2 f  V5 S
                             loadlibrary('bcd.dll','abc.h');
. ~% q6 D) F8 O, }# S  Z' M                             w=calllib('bcd','test',c,a,b);
) D  v' {9 s! b0 m+ S5 _! P                             unloadlibrary bcd
" o$ d; r# E8 c运行以后,matlab直接崩溃,闪退或是提示libpointer不支持复数数据/ f* j9 E( Q; [
我要实现的是一非常复杂的fortran程序,包含10多个子程序,整个程序都在计算复数,之前试了混编mex,没有成功,最近才知道dll这种方法,但是最后实现起来不是崩溃就提示libpointer不支持复数数据,大家帮帮忙吧,看看哪里出了问题
6 ~1 c( J/ I& J8 h  s) ^$ G
作者: NingW    时间: 2020-9-11 16:32
这是……
作者: younicp    时间: 2020-9-11 16:42
路过
作者: uerriup    时间: 2020-9-11 16:42
来个大神支援一下吧




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2