回 帖 发 新 帖 刷新版面

主题:有人用过64位的Matlab和Fortran混编吗?

接口函数里的声明格式有些不一样。
原先32位是
integer plhs(*),prhs(*)
integer nlhs,nrhs
编译都挺成功的
现在64位是
mwPointer plhs(*),prhs(*)啥的
integer nlhs,nrhs
这里面有个新类型mwPointer,据说是大小为integer*8的指针,专为64位用的
但是这个类型必须在fortran里加入一个#include "fintrf.h"的台头(Matlab的help里面说的)
但是不知道为什么matlab编译不了 好像识别不了这个"fintrf.h"里的内容
有人懂吗?多谢!
ps:如果我直接用integer*8或者integer*8,pointer::也不成,能编译,但是数据传递不对。

回复列表 (共4个回复)

沙发

用的是64位Fortran编译器么?

32位参数传递用的是栈,64位参数传递用的是寄存器

板凳

我用的是64位机 Matlab2010Ra和IVF11
接口程序什么格式 Matlab里面说的还是不够详细哎。。

3 楼

确定IVF是否是使用的64位编译器

4 楼

我在vs2008里面就用的ivf11的64位编译的

我来回复

您尚未登录,请登录后再回复。点此登录或注册