-3

我想将 a 转换为例如char array字符串。我试过这个,但它不起作用:char myArray[size]_bstr_t

_bstr_t test;

for (int i = 0; i < myArrayLength; i++) {
    test = test + (_bstr_t) myArray[i];
}
4

1 回答 1

0

该类_bstr_t提供了一个转换 c'tor ( _bstr_t::_bstr_t ),它采用const char*. 它执行从 ANSI 代码页编码(使用线程的当前语言环境)到 UTF-16 的字符转换,并构造一个_bstr_t对象:

 _bstr_t bstr = _bstr_t(myArray);

请注意,还有一个二进制_bstr_t::operator+(),它将 aconst char*作为其左侧。以下情况也是允许的:

_bstr_t test;
...
_bstr_t bstr = myArray + test;


如果您的输入char数组使用当前代码页使用 ASCII 或 ANSI 以外的编码,则必须使用MultiByteToWideChar_bstr_t手动将源编码转换为 UTF-16,并从wchar_t数组构造 a 。

于 2016-06-27T17:49:47.773 回答