Bonjour à tous,
Tous d'abord, je m'excuse si je ne suis pas dans le bon sous-forum, j'ai longuement hésité...
Alors voilà mon problème, j'ai une dll écrite en C, compilée sous visual c++ 2008, qui, en gros, ne fait qu'appeler la fonction cos() et sin() de math.h et retourner les valeurs de ces fonctions (Au début, elle faisait plein d'autre choses mais bon, j'ai réduit au problème.)
Quand je l'appelle à partir d'un programme C, pas de problème, j'ai les bons résultats.
Je lui fais un wrapper et l'appelle sous matlab : les résultats sont identiques, pas de pb.
Je lui fais un autre wrapper et je l'appelle depuis labview et là, catastrophe, quand le nombre donné en entrée est négatif, le résultat diffère de celui donné par le C et le matlab. Quand le nombre est positif, pas de problème.
Par exemple, pour 0.78
cos(0.78) = 0.710914 dans à partir d'appel C, matlab et labview mais pour
cos(-0.78) = 0.710914 dans à partir d'appel Cet matlab mais cos(-0.78) = 0.776424 quand j'appelle ma dll à partir de labview.
A votre avis, comment celà est-il possible ?
J'ai pensé que labview pouvait avoir une fonction cos qui fonctionnerait différemment et masquerait la mienne (est-ce possible ?), j'ai donc essayé en remplaçant cos par cosl, mais c'est pas mieux.
-Comment être certaine que j'appelle bien la fonction de math.h et pas une autre ?
- d'autre part, si j'appelle la fonction cos des widgets de labiew, j'obtiens une réponse correcte.
A votre avis quelle solution ?
Poster dans le sous forum labview ?
Merci
Partager