Passage de string d'une DLL C++ a un prog VB (.NET)
playmo420
Messages postés50Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention 6 juin 2006
-
18 mai 2004 à 16:10
playmo420
Messages postés50Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention 6 juin 2006
-
19 mai 2004 à 09:24
Bonjour
Je souhaiterais passer une string d'une DLL c++ a un programme VB.
et je declare cette fonction comme ceci dans le prob VB :
Public Declare Function selectMom Lib "schedule.dll" () As string
Le probleme, c'est qu'a l'execution de la fonction, j'ai une erreur... Les types string c++ et vb ne doivent pas etre les memes. Est ce que quelqun sait comment je pourrais faire ca ?
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 201626 18 mai 2004 à 21:22
salut
le type string n'est ni compatible VB6 ni VB.NET :
de plus une fonction C++ renvoie un pointeur vers la chaine que VB ne gère pas non plus. Il est conseillé de passer les chaine de carctères en paramètre de la fonction comme LPSTR.
de plus, il faut mieux renvoyé un DWORD comme valeur de retour car il sera alors renvoyé par valeur et non par référence
en C++ :
int MaFunc (LPSTR lpszChaine, int cbLength)
{
//...
lpszChaine = (LPSTR)ost.str().c_str();
// ou strcpy(lpszChaine,ost.str().c_str(),cbLength);
return 1;
}
dans VB :
public declare ansi function MaFunc(byval lpszChaine as string,byval cbLength as integer) as integer