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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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/
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/
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/
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
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
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