Bonjour à tous,

je voudrais appeler une fonction Fortran depuis un fichier c. Je me suis donc renseigné sur la question.

J'ai vu que la principale vigilance à avoir est le fait que le compilo Fortran suffixe le nom des fonctions avec un tiret bas. Donc lors de l'appel en C, il faut appeler en fait le nom de la fonction fortran concaténé au tiret bas.

Donc voici l'appel que je fais en C :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
extern void fsim_(int *i, float  *r);
void main()
{
int i=100;
float r;
fsim_(&i, &r);
}
et la fonction Fortran toute bête sur laquelle je fais le test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
subroutine FSim(i,r)
integer i
real r
r = i
return
end
Si je compile les 2 fichiers indépendamment, pas d'erreurs, pas d'avertissements, tout à l'air de bien se passer.
Mais c'est au moment d'effectuer l'éxécution :
error LNK2001: unresolved external symbol _fsim_
Debug/main.exe : fatal error LNK1120: 1 unresolved externals
Ce qui m'a tout l'air d'être une erreur de linkage. Pourtant j'ai bien inclus le fichier fortran au projet (je suis sous VC6.0).

Toute suggestion sera la bienvenue !
Merci,

karl3i.