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
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 ?
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
Vous devez être connecté pour voir les liens.
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 ?