String to bstr

wislam2007 Messages postés 62 Date d'inscription dimanche 1 octobre 2006 Statut Membre Dernière intervention 21 mars 2010 - 4 août 2009 à 16:07
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 - 5 août 2009 à 18:21
Salut
je veux marshaler un bstr pr un prg ecrit en NCl.
j'ai besoin de convertir ma chaine en BSTR.
j'ai tenté par :

unsigned long length = strlen(chaine);
int ResultLength = MultiByteToWideChar (CP_ACP,MB_PRECOMPOSED,
                   reinterpret_cast <char *>(chaine),length,NULL,0);
*strRet = SysAllocStringLen( NULL, ResultLength);
MultiByteToWideChar (CP_ACP,MB_PRECOMPOSED,
                   einterpret_cast <char *>(chaine),length,*strRet,ResultLength);

comment faire.


A vs

3 réponses

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
4 août 2009 à 20:19
wchar_t* szwText=L"Bonjour !";
BSTR bStr=SysAllocString(szwText);

// OLECHAR est de type Unicode dans du code 32 bits, donc OLECHAR* = wchar_t* ou short* ou WCHAR* ou...
0
wislam2007 Messages postés 62 Date d'inscription dimanche 1 octobre 2006 Statut Membre Dernière intervention 21 mars 2010 6
5 août 2009 à 11:40
Salut
mais si je veux Le "bonjour" sera un variable?
L+monvariable!! ça marche pas avec.
Merci


A vs
0
cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
5 août 2009 à 18:21
Convertir ANSI en UNICODE tu veux dire? Ben c'est le code que tu as proposé, ça fonctionne très bien :
BSTR bstr;
char szText[]="Bonjour";
unsigned long length = 8;

int ResultLength = MultiByteToWideChar (CP_ACP,MB_PRECOMPOSED,
                   szText,length,NULL,0);

bstr= SysAllocStringLen( NULL, ResultLength);
MultiByteToWideChar (CP_ACP,MB_PRECOMPOSED,
                   szText,length,bstr,ResultLength);
0
Rejoignez-nous