philipina
Messages postés50Date d'inscriptionmardi 5 mars 2002StatutMembreDernière intervention 4 décembre 2013
-
21 févr. 2008 à 18:12
philipina
Messages postés50Date d'inscriptionmardi 5 mars 2002StatutMembreDernière intervention 4 décembre 2013
-
22 févr. 2008 à 10:49
Bonjour,
Je dois utiliser un DLL écrite en C dans un programme VB6. Un des parametres que je dois passer à la structure suivante en C.
----------------------
struct SToken
{
char sToken[33];
char sResponseToken[33];
};
---------------------
Sous VB je l'ai déclaré de la manière suivante
----------------------
Public Type SToken
SToken As String
sResponseToken As String
End Type
----------------------
Le problème est que si je mes la value "test" sous VB dans la variable SToken.SToken, du coté C j'obtiens autre chose.
J'imagine que cela est du au fait que du coté C la variable est un tableau de char et du coté VB la variable est une string
Pouvez-vous me dire comment puis-je résoudre ce problème et passer correctement la structure Stoken à la DLL?
Merci d'avance pour votre aide.
Alain.
Remi
A voir également:
Problème de passage d'un tableau de caractère vers un DLL en C
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 21 févr. 2008 à 19:29
Salut
Je ne pourrais te donner de solution ne connaissant pas trop .Net et pas du tout C
Je sais que C fonctionne souvent plus avec les adresses mémoires des chaines qu'avec les chaines elles-mêmes.
Voir aussi les problèmes éventuels de communication avec des chaines Unicode (sous VB)
Idées :
- Si l'étendue des chaines définie sous C est de 33 caractères, il serait souhaitable de faire pareil côté VB
Essaye de voir si le formatage SToken As String * 33 fonctionne
- Voir s'il faut envoyer aussi un Chr(0) en fin de chaine (norme), je crois que les chaines sous C se servent de ce caractère pour déterminer la fin de chaine
- Essaye aussi de transférer un tableau de 33 Bytes correspondant à cette chaine