Bonjour,
j'essaie de linker une dll écrite en fortran avec un exe en C++.
Ma dll s'appelle DDL.dll et contient une routine qui s'appelle Flash.
Cette routine prends en entrée 5 paramètres :
-N1 = entier codé sous 2 octets
-N2 = vecteur d entiers de taille 30 codés sous 2 octets
-N3 = vecteur de réels de taille 30
-N4 = un reel
-N5 = un reel
Et elle retourne 5 paramètres :
-M1 = vecteur de réels de taille 30
-M2 = vecteur de réels de taille 30
-M4 = un réel
-M5 = un entier codé sur 2 octets
Dans les options de mon projet, j'ai bien ajouter dans l editeur de lien DDL.dll
Mon code C++ est :
Quand je compile, j'ai ce message :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 double* __declspec (dllimport) Flash(unsigned short int N1,short int* N2, double* N3, double N4, double N5); int main() { unsigned short int N1 = 9; short int N2[30]; double N3[30]; double N4 = 0; double N5 = 0; double* egal; egal = Flash(N1, N2, N3, N4, N5); return 0; }
undefined reference to `_imp__Flash'
J'avoue ne pas comprendre, puisqu'il me semble avoir "tout bien fait".
Si quelqu'un pouvait m'aider ce ne serait pas de refus.
De plus, j'avoue ne pas trop voir comment récupérer les résultats de ma routine : elle renvoie 4 paramètres. Est-ce que je stocke tout dans un tableau que je "sépare" apres, ou est-ce que je peux récupérer les diférents paramètres directement (en déclarant une structure ou quelque chose dans le genre), je ne sais pas du tout comment ca se passe à ce niveau la avec le fortran.
Je suis sous winXP et j use DevC++.
ps : je ne suis pas sur non plus que les types que j'ai mis (unsigned int etc) soit les bons, si on pouvait me confirmer ...
ps2 : je n'ai ni le .a ou .lib de la dll, ni le code source (mais la casse et la syntaxe sont bonnes)
Merci d'avance.
Kokocha
Partager