TA的每日心情 | 难过 2019-11-20 15:02 |
|---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在网上看了很多调用例子,全部都实现成功了,但是这些例子的fortran程序全都是用来计算实数的,我的fortran程序用来计算复数,程序如下* j: L* C7 C7 p. S* E$ X+ k( U
subroutine test(c,a,b) 1 s9 X+ b4 P( w
complex::a,b,c, _# {3 U. M9 l6 w
c=a+b
$ J. K2 [) ?; C8 i. j end subroutine$ l0 x0 x2 I% @4 k& E0 N) x& l
- ?& S7 v% w3 r7 p8 Y4 L/ l" p3 u生成bcd.dll文件
- {; W" B6 y% }9 F( b$ \% K- t, t I% {头文件 abc.h 程序是 void test(double*,double*,double*);6 R( V6 h% ^* _+ L: U9 }
matlab的.m程序如下a=3;b=1024;c=0;
]0 @3 y* K$ }7 H; J7 Q6 q loadlibrary('bcd.dll','abc.h');; t, C1 m! V; E5 Y' s3 F- Z
w=calllib('bcd','test',c,a,b);
; s! s2 r. d/ m+ c" n' r4 B unloadlibrary bcd
; _2 Q+ Y0 F. @0 M1 Z& z运行以后,matlab直接崩溃,闪退或是提示libpointer不支持复数数据
1 W& D8 d' E( ^# b; f" V我要实现的是一非常复杂的fortran程序,包含10多个子程序,整个程序都在计算复数,之前试了混编mex,没有成功,最近才知道dll这种方法,但是最后实现起来不是崩溃就提示libpointer不支持复数数据,大家帮帮忙吧,看看哪里出了问题
' s& Q3 H) j' M( | |
|