¿Alguien sabe cómo convertir BSTR a char *?Convierte BSTR a char *
Actualización: Intenté hacer esto, pero no sé si es correcto o incorrecto.
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest,p);
¿Alguien sabe cómo convertir BSTR a char *?Convierte BSTR a char *
Actualización: Intenté hacer esto, pero no sé si es correcto o incorrecto.
char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest,p);
Tu código es correcto. ConvertBSTRToString
hace precisamente eso. En cuanto a strcpy
, debe ser lo suficientemente grande como para mantener la cadena apuntada por p
. Tenga en cuenta que dado que ConvertBSTRToString asigna una nueva cadena, deberá liberarla en algún lugar de la línea. Una vez que haya terminado asegúrese de hacerlo:
delete[] p;
Un par de advertencias, aunque (como se puede ver en BSTR
documentation on MSDN):
- En Microsoft Windows, se compone de una cadena de caracteres Unicode (ancho o caracteres de doble byte).
- Puede contener múltiples caracteres nulos incorporados.
lo tanto, su strcpy
puede no siempre funciona como se esperaba.