Einzelnen Beitrag anzeigen

micha382

Registriert seit: 4. Nov 2005
Ort: Lyon(Frankreich)
10 Beiträge
 
Delphi 8 Professional
 
#1

Kann meine Fortran dll in Delphi.NET nicht laden

  Alt 7. Dez 2005, 11:19
Hallo zusammen.

Ich habe das Problem, dass ich in Fortran geschriebene dll's in Delphi8 nicht öffnen kann.
Ich habe für den Anfang eine Funktion geschrieben, die eine Integer mit zwei multipliziert: In Delphi benutze ich dann folgenden Code um die dll zu aufzurufen:

Delphi-Quellcode:

function MULTIPLY(var N : integer) : integer; cdecl; // habe es auch mit safecall, stdcall,
                                                     // register etc. versucht
external 'MULTIPLY.dllname MULTIPLY;


procedure Main.Button1_Click(sender: System.Object; e: System.EventArgs);
begin
  N := strtoint(TextBox1.Text);

  MULTIPLY(N);

  TextBox1.Text := convert.ToString(N);

end;
Mit diesem Code bekomme ich stets die Fehlermeldung, dass die dll nicht geladen werden könne.
Mit Delphi dll's gibt es dagegen kein Probleme, ausserdem läuft besagte Fortran dll in Delphi7...

Ich habe es auch über ein Interface versucht, das war allerdings auch nicht von Erfolg gekrönt:

Delphi-Quellcode:
type
  IWin32DLLInt = interface
  function MULTIPLY (var N : integer): integer;
  end;

var
  N : integer;
  MyDLL : string;
  MyWin32DLL : IWin32DLLInt;

begin
  MyDLL := System.Environment.CurrentDirectory +'\MULTIPLY.dll';
  if not Supports(MyDLL, IWin32DLLInt, MyWin32DLL) then
  info := 'Ne peut pas charger MULTIPLY.dll'
  else
    begin
    MyWin32DLL.MULTIPLY(N);
    end;
end;
Gibt es noch andere Möglichkeiten, eine dll aufzurufen?

für FORTRAN-Experten: Brauche ich dafür einen speziellen Compiler (ich benutze FTN95)?

Ich weiss, dass dies kein FORTRAN Forum ist, aber vielleicht hatte ja schonmal jemand ein ähnliches Problem.

Danke.
Micha
  Mit Zitat antworten Zitat