librairie C dans Application C++
Salut Ami(e)s D�veloppeurs
J'ai un probl�me assez myst�rieux :
J'utilise VC++ 2010
J'ai cr�� un fichier .lib bas� sur la librairie SISL de Sintef.
Cette librairie est compos�e d'un tr�s grand nombre de fonctions (>=600) toutes �crites en C et ont l'air prets � etre plug�s � une grosse application en c++ (pr�sence de extern C, ....).
J'ai pu g�n�r� un seul .lib correspondant � toutes ces fonctions.
Pour les appeler dans mon appli j'utilise un header + le.lib au linkage.
Le probl�me est le suivant :
Pour une raison quelconque, certaines fonctions plantent � l'ex�cution, d'autres non.
En d�bugant j'ai remarqu� que certains param�tres pass�s � la fonction se trouvant dans le .lib changent de valeur une fois dans le corps de cette fonction.
Ex :
Supposons que le prototype de la fonction dans le .lib est le suivant
void funcStaticLib(float[], float[], float, float[]);
Pour ex�cuter cette fonction,
je d�clare les variables
float tab1[3] = {0.0,1.0,0.0};
float tab2[3] = {1.0,1.0,0.0};
float val = 1.0;
float res[3];
puis j'appelle ma fonction :
funcStaticLib(tab1, tab2, val, res);
La fonction plante et quand je lance le debugger VC2010
je remarque en entrant dans le corps de funcStaticLib que
tab1 a tjrs la meme valeur
tab2 devient un pointeur invalide
val prend la valeur 2.37636763 E+18 p�r ex.
Vous ete d'accord avec moi que c'est totalement incompr�hensible...comme si entre la d�claration des variables et le passage de param�tres, il s'est pass� quelque chose
Voil� j'ep�re que je me suis fait bien comprendre.
Toute aide sera plus que appr�ci�e.
Merci d'avance