TA的每日心情 | 难过 2019-11-20 15:02 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在网上看了很多调用例子,全部都实现成功了,但是这些例子的fortran程序全都是用来计算实数的,我的fortran程序用来计算复数,程序如下7 Q1 ~, H: O4 g5 c3 [" C0 Z
subroutine test(c,a,b)
[) E/ R0 N a0 X1 a' f complex::a,b,c
" |' H1 i4 }6 r# R( @6 | c=a+b
1 P" d6 A) g+ o end subroutine
, K/ w0 b1 [. ~- K
4 y; _8 k" ]6 J' N生成bcd.dll文件
- R8 w. ]* Y- {# D: D$ [; O" H头文件 abc.h 程序是 void test(double*,double*,double*);3 v6 U, l! {$ ~: B! b
matlab的.m程序如下a=3;b=1024;c=0;! T, k$ A5 Z% j( r4 Z
loadlibrary('bcd.dll','abc.h');
1 e: I5 n4 X0 l- q w=calllib('bcd','test',c,a,b);
) s7 g0 ?6 P$ S unloadlibrary bcd
1 v- t7 N* m) |; F" s/ E, S/ h运行以后,matlab直接崩溃,闪退或是提示libpointer不支持复数数据3 G* N4 a6 ?; d( ^# P1 m% d" X
我要实现的是一非常复杂的fortran程序,包含10多个子程序,整个程序都在计算复数,之前试了混编mex,没有成功,最近才知道dll这种方法,但是最后实现起来不是崩溃就提示libpointer不支持复数数据,大家帮帮忙吧,看看哪里出了问题) ~( b# j7 A" j" Z0 U7 u. j
|
|