fonction C retournant une chaîne de caractères à VB

yakifo

Nouveau membre
Bonjour,

J'ai commencé à développer une DLL en C et je veux appeler les fonctions de ce DLL depuis VB.
Le problème est que lorsque je veux appeler une fonction C qui retourne une chaîne de caractères, le VB voit cette chaîne vide ("").
Le code C est de type :


char str[256];

char * __stdcall RetourneString( void )
{
strcpy(str, "Coucou !");
return( (char *) &str );
}


et le code VB :

Private Declare Function retourneString Lid (myDLL.dll" Alias "RetourneString" () As String

Sub Test()
MsgBox retourneString
End Sub

J'ai lu le topic sarl_adc et dans mon cas, VB ne se plante pas.
Pour info, il existe une solution qui consiste à passer une chaîne de caractères par argument d'une fonction C mais pour une raison de pratique, je aimerais écrire une fonction qui est capable de retourner la chaîne de caractères à VB.
Donc juste deux questions : est-ce possible, et si c'est oui, comment faire marcher cette fonction ?
 

KangOl

Grand Maître
je ne sais pas comment ca fonctionne en VB mais ta fonction C te renvoie un pointeur vers une chaine de caracteres et pas une chaine de caracteres :o
 

yakifo

Nouveau membre
@KangOl

... et VB ne connaît pas l'adressage indirect. Mais je pense qu'il doit y avoir une solution pour que VB récupère une chaine de caractère retournée par une fonction C.
 

Thore

Grand Maître
truc tirer par cheveux mais bon !Dans l'imediat !
Tu peut peut-etre pas la chaine de caratere a la base de registre et la reprendre par vb ?!

 

sr17

Grand Maître
[citation=8773,0,7][nom]thore a écrit[/nom]truc tirer par cheveux mais bon !Dans l'imediat !
Tu peut peut-etre pas la chaine de caratere a la base de registre et la reprendre par vb ?!
[/citation]

[:adanorm] [:webnurse]
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 126
Messages
6 717 820
Membres
1 586 365
Dernier membre
matiOs1
Partager cette page
Haut