在delphi中引用fortran生成的dll动态连接库问题 急呀(100分)

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

renzq

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在的论文模拟计算部分是用delphi做界面设计和数据库,用fortran做算法程序,现在在delphi使用fortran产生的动态连接库时,遇到下面的问题,请大侠赐教!
用的版本:Fortran Powerstation4.0
Delphi 7.0
用的fortran 的 dll源码如下:
SUBROUTINE SumInt(a,b,c)
! MS $ ATTRIBUTES DLLEXPORT::SumInt
! MS $ ATTRIBUTES C,ALIAS:'SunInt'::SumInt
! MS $ ATTRIBUTES VALUE::a,b
! MS $ ATTRIBUTES REFERENCE::c
IMPLICIT NONE
INTEGER(4)::a,b,c
c=a+b
END SUBROUTINE
在delphi中的调用如下:
procedure SumInt(var a,b,c:integer);stdcall;external'test.dll';
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c:integer;
begin
b:=5;
a:=-5;
SumInt(a,b,c);
end;

出现的错误提示是:应用程序初始化(0xc000007b)失败.

请问大侠是怎么回事呀,急呀,要做论文计算。

 
这样看看
procedure SumInt(a,b:integer;
var c:integer);stdcall;external'test.dll';
 
To tseug:
谢谢你的回复,但这样还是不行的,还是说:应用程序初始化(0xc000007b)失败
请多指教
 
MS $ ATTRIBUTES C,ALIAS:'SunInt'::SumInt
^^^^^^ ? SumInt?
 
to tseug:
谢谢你,可是还是不行,还是那个问题,我觉得的两个约定是对的呀,麻烦您再帮我看看,谢谢!
 
你把那个DLL发给我,我试试看. tseug@263.net
 
能不能重新编译一下DLL,我查看它发现他根本就没有导出任何函数。参考
http://www.geo.idv.tw/programming/fortran_dll.htm
 
不行呀,我是按他说的方法做的呀,可是还是不行呀
 
那你用TDump看看生成的DLL里是不是引出了你需要的函数,如果没有,那怎么也不行。
估计是你的Fortran设置上有什么说道。
 
好的,我再试试看,
 
谢谢你,tseug!
 
后退
顶部