Fortran Coder

查看: 10989|回复: 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中计算。请帮我看看我该怎么做

1958

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1339 元
贡献
565 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

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

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

使用道具 举报

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

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-4-19 06:34

Powered by Tencent X3.4

© 2013-2024 Tencent

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