Estoy tratando de convertir un wchar_t *
en BSTR
.C++: ¿Convierte wchar_t * en BSTR?
#include <iostream>
#include <atlstr.h>
using namespace std;
int main()
{
wchar_t* pwsz = L"foo";
BSTR bstr(pwsz);
cout << SysStringLen(bstr) << endl;
getchar();
}
Esto imprime 0
, que es menos de lo que yo esperaba. ¿Cuál es la forma correcta de hacer esta conversión?
'CString' no _wrap_ a' BSTR', aunque tiene un método para asignar un 'BSTR' de' CString' ('.AllocSysString()'). 'CString' no ayuda con la liberación automática de un' BSTR', sin embargo. –
bien en cierto sentido, envuelve la funcionalidad para convertir a un BSTR que era lo que el OP quería, pero técnicamente está en lo correcto, así que mi elección de palabras no era la correcta. –