TA的每日心情 | 难过 2019-11-20 15:02 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在网上看了很多调用例子,全部都实现成功了,但是这些例子的fortran程序全都是用来计算实数的,我的fortran程序用来计算复数,程序如下/ d: _4 ?6 Y) k, z& O% p6 |
subroutine test(c,a,b)
% V. F+ \2 X* _( n; @- A7 B complex::a,b,c9 U- U; _9 q" {! A: U$ C+ U4 o" U
c=a+b+ f5 Y0 f, x6 N( N3 t4 }
end subroutine
$ k, f1 d4 c/ L" q6 f- \) a
8 k' O! o* n0 Y生成bcd.dll文件# n) G5 S) j+ F1 R, {* M7 r
头文件 abc.h 程序是 void test(double*,double*,double*);
0 a5 ]+ U; z+ H( U- amatlab的.m程序如下a=3;b=1024;c=0;$ m; g2 j7 p% V9 C) c' f5 l
loadlibrary('bcd.dll','abc.h');
, G; S) l) y& Z; G w=calllib('bcd','test',c,a,b);+ L9 o2 Q% n! _/ S" @1 z
unloadlibrary bcd' T3 D. E6 [4 j
运行以后,matlab直接崩溃,闪退或是提示libpointer不支持复数数据8 V# A+ h9 W e4 ^4 m0 y0 M6 w
我要实现的是一非常复杂的fortran程序,包含10多个子程序,整个程序都在计算复数,之前试了混编mex,没有成功,最近才知道dll这种方法,但是最后实现起来不是崩溃就提示libpointer不支持复数数据,大家帮帮忙吧,看看哪里出了问题
: |2 O: a8 \ t' N |
|