Tôi đang cố gắng chuyển đổi một số wchar_t *
thành BSTR
.C++: Chuyển đổi wchar_t * thành BSTR?
#include <iostream>
#include <atlstr.h>
using namespace std;
int main()
{
wchar_t* pwsz = L"foo";
BSTR bstr(pwsz);
cout << SysStringLen(bstr) << endl;
getchar();
}
Điều này in 0
, ít hơn những gì tôi hy vọng. Cách chính xác để thực hiện chuyển đổi này là gì?
'CString' không _wrap_ một' BSTR', mặc dù nó có một phương pháp để phân bổ một 'BSTR' từ một' CString' ('.AllocSysString()'). 'CString' không hỗ trợ tự động giải phóng' BSTR'. –
cũng theo nghĩa nó kết thúc tốt đẹp các chức năng để chuyển đổi sang một BSTR đó là những gì OP muốn, nhưng về mặt kỹ thuật bạn là chính xác để lựa chọn các từ của tôi là không đúng. –