Fortran Coder

查看: 210|回复: 1

[混编] C++中如何把多组类的数据传递给Fortran的dll

[复制链接]

14

帖子

4

主题

0

精华

入门

F 币
11 元
贡献
42 点
QQ
发表于 2017-7-21 21:07:49 | 显示全部楼层 |阅读模式
10F 币
[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中计算。请帮我看看我该怎么做

回复

使用道具 举报

1148

帖子

12

主题

5

精华

论坛跑堂

Fcode跑堂

F 币
1128 元
贡献
892 点

新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2017-7-21 22:44:43 | 显示全部楼层
和传递数组一样。只不过是派生类型的数组而已。

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

使用道具 举报

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|QQ群|Fcode

GMT+8, 2017-12-18 14:58

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表