Dll VC++ -> VB

Signaler
Messages postés
20
Date d'inscription
mardi 27 août 2002
Statut
Membre
Dernière intervention
22 février 2003
-
Messages postés
20
Date d'inscription
mardi 27 août 2002
Statut
Membre
Dernière intervention
22 février 2003
-
Voila j'essait de faire une dll sous VC++ pour l'utiliser sous VB. Il y a un problemme de compatibilité entre les string de Vb et celle de Vc++. Comment fair ?

2 réponses

Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
8
les Strings de VB sont relativement complexes à traiter en C++ (les SafeArrays)
la manière la plus simple est de passer des chaînes de caractères accessibles au C++ sous la forme de pointeur !

je m'explique avec un exemple :
soit la dll C++ suivante (nommée testVB.dll) :

// fonctions avec chaines de caractères.
//en entrée
void _stdcall Hello(char* texte)
{
MessageBox(0, texte, "testVB.DLL", MB_OK);
}
//en sortie
void _stdcall HelloRetour(char* buffer)
{
strcpy(buffer, "testVB.DLL");
}
Exporter avec un .DEF ou bien par
__declspec(dllexport) et extern "C"

il convient en VB de voir ces fonctions ainsi :
Declare Sub Hello Lib "testVB" (ByVal texte As String)
Declare Sub HelloRetour Lib "testVB" (ByVal texte As String)

le test est ensuite évident :
Public Sub testHello()
Hello "jean-louis"
Dim dllString As String * 25
HelloRetour dllString
Debug.Print dllString
End Sub

bon courage pour la suite, les interlangages sont minés
par exemple, la Gestion des Exceptions...
Messages postés
20
Date d'inscription
mardi 27 août 2002
Statut
Membre
Dernière intervention
22 février 2003

Merci. Je me doutait que un truc comme ca soit possible mais comme cela ne fait pas longtemps que je suis au c++ j'avais pas trouvé.
Merci pour tout !