delphi 与fortran的混合编程中,多维数组的参数传递(100分)

  • 主题发起人 主题发起人 renzq
  • 开始时间 开始时间
R

renzq

Unregistered / Unconfirmed
GUEST, unregistred user!
系统:WinXP Professinal
Delphi 7。0
Visual Fortran 6。5
用Fortran生成DLL文件,由Delphi调用,在单变量参数,一维数组都是对的,但是对于二维数组就不对了!
Fortran中是:
!DEC $ATTRIBUTES DLLEXPORT::TEST
! DEC $ATTRIBUTES REFERENCE::NY
DOUBLE PRECISION NY(3,5)
...
DELPHI :
type
Array1 = array[1..3,1..5] ofdo
uble;
procedure TEMP(var NY: Array1);StdCall;External'Temp.dll';
完了以后,数组的值就变了 比如在Delphi中给值为
1 1 1 1 1
NY = 2 2 2 2 2
3 3 3 3 3
在Fortran中就变成了
1 1 2 2 3
NY = 1 1 2 3 3
1 2 2 3 3
请问怎么调用才能使它能传递正确的参数
 
这是你dll中的参数调用顺序不同造成的,你多试几次,改成一样的就可以了
 
我只有一个数组参数呀,没有什么顺序不对吧,你能不能说清楚点呀,谢谢!
 
Delphi的多维数组不是安装C语言的那样对齐排放,他会多出几个自己存在一些信息的!
建议你用其它语言和Delphi做多维数组传递的时候,转换成一维数组,顺便将“行”和“列”
也传进去。
 
多人接受答案了。
 
后退
顶部