Fortran Coder

查看: 6187|回复: 8
打印 上一主题 下一主题

[混编] fortran 调用 matlab 函数

[复制链接]

1967

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1370 元
贡献
581 点

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

楼主
发表于 2021-10-17 22:41:53 | 显示全部楼层
因为你用的64位 Fortran,所以你应该用
integer(8),external::engOpen,engPutVariable,engGetVariable,engEvalString,engClose
integer(8) , external :: mxCreateDoubleMatrix,mxGetPr
代替
integer,external::engOpen,engPutVariable,engGetVariable,engEvalString,engClose
integer,external::mxCreateDoubleMatrix,mxGetPr

同样的还有:
integer(8) ep !指针,用于指向打开的matlab
integer(8) ptemp

凡是 Matlab 返回指针的,都应该用 integer(8) 才对。

我记得有个 include "fintrf.h" 文件,里面定义了 mwPointer 这个东西。在64位时自动为integer(8),在32位时自动为 integer
这样,你就可以不必考虑是32位还是64位了。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-26 06:26

Powered by Tencent X3.4

© 2013-2024 Tencent

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