Fortran Coder

标题: C++中如何把多组类的数据传递给Fortran的dll [打印本页]

作者: cfortran    时间: 2017-7-21 21:07
标题: C++中如何把多组类的数据传递给Fortran的dll
[C] 纯文本查看 复制代码
class unitinfo
{
public:
        int cotrolno;
        CString unitname;
        int unittype;
        int solid;
        double coearea;
        double shapepara[3];
        double rotationpara[3];
        double tranpara[3];
        int pn;
        double *plist;
};

这里这组数据共有n组,所以我用的是动态分配
[C] 纯文本查看 复制代码
public:
unitinfo *inunit;
singlenum=5;!外部输入的
inunit=new unitinfo[singlenum];

里面具体的赋值就不粘了
[C] 纯文本查看 复制代码
typedef void(*model)(int&,class unitinfo*);
model hydromodel=(model)GetProcAddress(kLibrary,"hydromodel");

hydronodel(singlenum,&(inunit[0]));

我是这样处理的,结果调试发现好像只有第一组的数据传进去了,后续数据没有在Fortran的Dll中计算。请帮我看看我该怎么做

作者: fcode    时间: 2017-7-21 22:44
和传递数组一样。只不过是派生类型的数组而已。

需要注意的是 ,CString 这种扩展类,是不能传递的。fortran不认识它。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2