Fortran .lib Datei in C++ einbinden. Wie gehts?

Hallo zusammen,

ich hoffe ich bin hier richtig gelandet und spamme nicht den falschen Thread voll.

Ich hab ein kleine Problem. Ich besitze eine Fortran lib-Datei die Funktionen für das Lösen von linearen Gleichungssystemen enthält. Diese lib ist vorkompiliert und ich habe den Quellcode leider nicht. Ich möchte diese Funktionen gerne in einem Visual Basic Projekt verwenden. Nachdem ich nach meinen Recherchen zuminestens so weit bin, dass ich weis das ich in VB keine libs einbinden kann will ich nun in C++ eine dll erstellen die diese Funktionen zur Verfügung stellt.

Nun meine Frage.

Nachdem dich leider schon lange Zeit aus der C++ Programmierung raus bin würde ich mich freuen wenn mir einer einen kleinen Anstoß geben kann, wie ich die Funktionen aus der lib in C++ nutzen kann. Hab zwar die Interface Beschreibungen der Fortran Subroutinen aber ich hab im mom keine Ahnung wie ich die in C++ einbauen kann.

Vielen Dank schon mal im Voraus. Wenn noch was benötigt wird bitte sagen. Ist für mich das erste mal das ich in einem Forum poste also verzeiht wenns ned so der Norm entspricht.

Gruß
Stefan

Hallo
Erst einmal, ich weiß nicht was .lib Dateien bei deinem Fortran sind.
ich weiß auch nicht, was dein Fortran Compiler kann.
Erforderlich ist auf jeden Fall, das der Fortran Code compilert wird und alle Funktionen „exportiert“ werden.
Man beachte auch, das, am besten im Fortran Code, dabei eventuelle Laufzeitdateien der Fortran-Programmierumgebung geladen werden müssen.
Wenn das erst einmal gelungen ist, kannst du mit VB oder C diese Dll aufrufen.
Bei VB ist es aber so direkt nicht möglich, man erstellt da zum Beispiel ein Control, welches man einfach auf ein Formular ziehen kann.
Das geht auch mit Visual C++.
Mit C++ kann man zwar eine dll mit exportierten Funktionen erstellen, aber C++ ist nicht Fortran und dann müßtest du alles übersetzen.
Es kommt also hauptsächlich darauf an, was du mit dem Fortran und seinem Compiler erzeugen kannst.
Exporte werden zum Beispiel für einem üblichen Linker angegeben.
Hast Du einen separaten Linker für Dein Fortran, schau mal in seine Optionen. Der Linker verwendet auch verschiedene Dateien, die Einstellungen bewirken.(Handbuch)
Eine weitere aber auch etwas kompliziertere Methode wäre das reengeneering(Disassembler) des compilierten Fortran-Codes und eine inline(wie heißt es in C++?) Programmierung von Assembler in C++ oder einem Basic. Sowas können aber nur Spezialisten. Bei fremden Produkten zumeist verboten.

MfG
Matthias

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,
ich kenne mich in FORTRAN nicht gut genug aus, um viel darüber zu sagen, aber irgendwo muss stehen, welche Funktionen in der Bibliothek enthalten sind.
Die kannst du im C+±Header deklarieren (oder, falls die LIB dynamisch ist, mit dlopen einbinden). Details zur deklaration findest du unter dem Stichwort „Einbinden von ASM-Object-Files in C+±Code“ im Netz.

mfg, Hans

Vielen dank für die Tips

Gruß
Stefan