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.dll' name 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.