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...
------------------------------- Réponse au message : -------------------------------
> 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 ?
|