OVH Cloud OVH Cloud

PB de retour de dll

2 réponses
Avatar
Looping
j'ai créer une DLL en C qui sera linker à mon logiciel fait sous VB.
le problème c'est que je n'arrive pas à faire revenir une chaine de
caractère (de 255 caractères) de ma DLL vers mon soft. comment faut-il
déclarer la fonction?
merci

2 réponses

Avatar
ng
Salut,

j'ai créer une DLL en C qui sera linker à mon logiciel fait sous VB.
le problème c'est que je n'arrive pas à faire revenir une chaine de
caractère (de 255 caractères) de ma DLL vers mon soft. comment faut-il
déclarer la fonction?
merci



Comment est déclarée ta fonction C ?

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Avatar
christophe-pasde
Bonjour,

C'est un pb classique, les chaines en VB et en C ne sont pas de même nature.

En C il s'agit de chaine terminé par null (ASCII 0) en VB Non.

Je lis dans ma doc que les fonctions de dll ne peuvent pas renvoyer de
chaine à VB, mais peuvent modifier celle qui lui sont transmises.

Donc l'essentiel est de définir une chaine de longueur fixe, celle
attendue en valeur retour. Attention si la chaine attendue fait N
caractères il faut la dimensionner à N+1 pour accueillir le caractère
Null de fin de Cha^ne C. Car une chaine VB peut contenir Null, donc re
attention si une chaine VB contenant null est passée à une Dll C elle
sera tronquée à la position de Null.

A+

Christophe


Looping a écrit :

j'ai créer une DLL en C qui sera linker à mon logiciel fait sous VB.
le problème c'est que je n'arrive pas à faire revenir une chaine de
caractère (de 255 caractères) de ma DLL vers mon soft. comment faut-il
déclarer la fonction?
merci