OVH Cloud OVH Cloud

Utilisation d'une DLL

4 réponses
Avatar
Delphine
Bonjour,
Lorsque j'utilise une DLL avec VB et que j'ai un tableau=20
de donn=E9es en r=E9ponse, j=B4ai un gros probl=E8me de conversion=20
des donn=E9es par VB car les valeurs inf=E9rieures =E1 1 (je=20
crois) ne sont pas les bonnes alors que les valeurs dans=20
la DLL sont correctes.

Cela fait deux fois que je rencontre ce probl=E8me alors=20
que tout est d=E9clar=E9 en double.

J=B4ai v=E9rifi=E9 les valeurs dans le programme C et c=B4est les=20
bonnes mais VB ne les lit pas correctement (comme par=20
exemple 0.01 0.02 0.03...). Par contre, il semble que la=20
premi=E8re valeur du tableau soit toujours bonne.

Pouvez vous m'aider SVP.

Delphine

4 réponses

Avatar
François Picalausa
Bonjour/soir,

Pourrais-tu nous aider par un bout de code, que l'on sache de quoi il
retourne?
En attendant, la fiche suivante pourra peut-être t'aider:
http://support.microsoft.com/default.aspx?kbid3586

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com

"Delphine" a écrit dans le message de
news:43ce01c375f6$06a72dd0$
Bonjour,
Lorsque j'utilise une DLL avec VB et que j'ai un tableau
de données en réponse, j´ai un gros problème de conversion
des données par VB car les valeurs inférieures á 1 (je
crois) ne sont pas les bonnes alors que les valeurs dans
la DLL sont correctes.

Cela fait deux fois que je rencontre ce problème alors
que tout est déclaré en double.

J´ai vérifié les valeurs dans le programme C et c´est les
bonnes mais VB ne les lit pas correctement (comme par
exemple 0.01 0.02 0.03...). Par contre, il semble que la
première valeur du tableau soit toujours bonne.

Pouvez vous m'aider SVP.

Delphine
Avatar
Ledev
Delphine wrote:
Bonjour,
Ci-dessous, le bout de code concernant mon problème:



[...]

Par exemple, si je met un espion sur rvy, les valeurs sont
les suivantes retournées par VB:
[0.01 0.0439 0.0778 0.1117 0.1456 1 2 3]
alors que les valeurs de C (de la DLL) que je souhaiterais
avoir sont:
[0.01 0.02 0.03 0.04 0.1 1 2 3]

Y-a-t'il quelquechose qui ne va pas dans mon code? Je ne
crois pas et je pense plutot que VB a un problème de
lecture des données dans la mémoire.



à mon avis, ta dll ne renvoie pas le nombre dans le même type de donnée que
VB. Il faut faire gaffe entre VB et le C/C++, les types de donnée ne
fonctionne pas toujours pareil, ainsi VB se contente de prendre la masse
binaire et de l'utilisée comme un type double. Peut on savoir quelle type de
donnée ta DLL utilise?

a+
Avatar
Gilles RONSIN
"Ledev" , le mer. 10 sept. 2003 11:21:55, écrivait
ceci:

Salut,

à mon avis, ta dll ne renvoie pas le nombre dans le même type de
donnée que VB. Il faut faire gaffe entre VB et le C/C++, les types de
donnée ne fonctionne pas toujours pareil, ainsi VB se contente de
prendre la masse binaire et de l'utilisée comme un type double. Peut
on savoir quelle type de donnée ta DLL utilise?



A tout hazard, il existe un document qui date de VB4 qui explique bien les
type de données utilisées par C et VB. Tu trouveras peut être des
explications à ton phénomène.
http://gilles.ronsin.free.fr/fichiers/VB4DLL.TXT

--
Embryon de site : http://gilles.ronsin.free.fr Nouveau: un JukeBox pour
DaemonTool
Mon utilitaire de BDR V1.1.0 : http://gilles.ronsin.free.fr/aregtool.htm
Les gens qui ne rient jamais, ne sont pas des gens sérieux.
Avatar
Delphine
Je vous remercie pour votre aide. Mais impossible de
résoudre le pB. En fait, ma DLL est en C est le type de
données en C est "double". Donc, ca semble aller, non?

-----Message d'origine-----
Delphine wrote:
Bonjour,
Ci-dessous, le bout de code concernant mon problème:



[...]

Par exemple, si je met un espion sur rvy, les valeurs




sont
les suivantes retournées par VB:
[0.01 0.0439 0.0778 0.1117 0.1456 1 2 3]
alors que les valeurs de C (de la DLL) que je




souhaiterais
avoir sont:
[0.01 0.02 0.03 0.04 0.1 1 2 3]

Y-a-t'il quelquechose qui ne va pas dans mon code? Je ne
crois pas et je pense plutot que VB a un problème de
lecture des données dans la mémoire.



à mon avis, ta dll ne renvoie pas le nombre dans le même


type de donnée que
VB. Il faut faire gaffe entre VB et le C/C++, les types


de donnée ne
fonctionne pas toujours pareil, ainsi VB se contente de


prendre la masse
binaire et de l'utilisée comme un type double. Peut on


savoir quelle type de
donnée ta DLL utilise?

a+


.