2017-03-09 1 views
0

Je veux lier mon code Fortran avec cette DLL Fortran.Comment lier Fortran exe avec Fortran DLL?

manière simple ...

programme Fortran (code modifiable) --LINK-- Fortran DLL (non modifiable) (méthode reliant via le code de programme Fortran ??)

Je veux faire un programme où je ne veux pas montrer mes codes (cette partie sera sous forme de DLL).

Par exemple:

j'ai un code de DLL dans Fortran intel qui est

SUBROUTINE TWICE(x,y) 
IMPLICIT NONE 
!DEC$ ATTRIBUTES DLLEXPORT::TWICE 
REAL, INTENT(IN) :: x 
REAL, INTENT(OUT) :: y 
y=2*x 
END SUBROUTINE TWICE 

maintenant je veux utiliser cette DLL dans un autre programme. Le nouveau programme est un programme distinct et je veux utiliser cette DLL dans le fortran Intel écrit ci-dessous.


PROGRAM TestToCallDLL 
IMPLICIT NONE 
!DEC$ ATTRIBUTES DLLIMPORT::TWICE 
REAL :: x,y 

WRITE(*,*)'x?' 
READ(*,*)x 
CALL Twice(x,y) 
WRITE(*,*)'x twice = ',y 

END PROGRAM TestToCallDLL 

L'erreur est:

Error 1 error LNK2019: unresolved external symbol __imp__TWICE referenced in function _MAIN__ twiceTEST.obj 
Error 2 fatal error LNK1120: 1 unresolved externals Debug\twiceTEST.exe 
+1

Veuillez ne pas demander aux gens de vous envoyer quoi que ce soit, c'est complètement hors-sujet ici. Demandez une solution de votre problème. Montrez-nous ce que vous faites en étapes simples et en détail. Afficher vos messages d'erreur Montrer du code simple. –

+0

Entrez plus d'infos après avoir cliqué sur le ** edit ** ci-dessous la question http://stackoverflow.com/posts/42696140/edit Nous aurons besoin de voir ** beaucoup plus **. Montrez vos ** commandes ifort ** que vous exécutez et les ** messages d'erreur **. –

+0

Et quelle commande exécutez-vous lorsque vous obtenez ce message d'erreur? Ou à quoi clics-tu? Ou que faites-vous quand il imprime ce message? Voir aussi http://stackoverflow.com/questions/5159353/how-can-i-get-rid-of-the-imp-prefix-in-the-linker-in-vc –

Répondre

0

Le fichier .LIB généré par le compilateur lors de la création du .DLL doit être utilisé pendant la liaison. Ajoutez-le en tant que dépendance. Vous pouvez également le copier dans le nouveau répertoire du projet.

Voir Calling Fortran DLL from C++ using Visual Studio 2008 sur le forum de support Intel Fortran pour Windows pour plus d'informations.