Próbuję przekonwertować wchar_t *
na BSTR
.C++: Konwertuj wchar_t * na BSTR?
#include <iostream>
#include <atlstr.h>
using namespace std;
int main()
{
wchar_t* pwsz = L"foo";
BSTR bstr(pwsz);
cout << SysStringLen(bstr) << endl;
getchar();
}
Drukuje 0
, która jest mniejsza niż to, co miałem nadzieję. Jaki jest prawidłowy sposób na tę konwersję?
'CString' nie _wrap_ a' BSTR', chociaż ma metodę przydzielenia 'BSTR'a z' CString' ('.AllocSysString()'). 'CString' nie pomaga jednak w automatycznym zwalnianiu' BSTR'. –
również w pewnym sensie zawija funkcjonalność do konwersji na BSTR, który był tym, co OP chciał, ale technicznie masz rację, więc mój wybór słów nie był właściwy. –