Qualcuno sa come convertire BSTR in char *?Converti BSTR in char *
Aggiornamento: ho provato a farlo, ma non so se è giusto o sbagliato.
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest,p);
Qualcuno sa come convertire BSTR in char *?Converti BSTR in char *
Aggiornamento: ho provato a farlo, ma non so se è giusto o sbagliato.
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest,p);
Il tuo codice è ok. ConvertBSTRToString
fa proprio questo. Per quanto riguarda lo strcpy
, deve essere abbastanza grande da contenere la stringa puntata da p
. Si noti che poiché ConvertBSTRToString alloca una nuova stringa, sarà necessario liberarla da qualche parte lungo la linea. Una volta fatto assicurarsi che fare:
delete[] p;
Un paio di avvertimenti anche se (come si può vedere da BSTR
documentation on MSDN):
- In Microsoft Windows, è costituito da una stringa di caratteri Unicode (wide o caratteri a doppio byte).
- Può contenere più caratteri null incorporati.
Così, il vostro strcpy
non può funzionare sempre come previsto.