C 如何将char []数组转换为_bstr_t

C++ how to convert a char[] array to _bstr_t?

本文关键字:转换 bstr 数组 char      更新时间:2023-10-16

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

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

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

 _bstr_t bstr = _bstr_t(myArray);

请注意,还有一个二进制_BSTR_T :: operator (),它将const char*作为其左侧。还允许以下内容:

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


如果您的输入char数组使用当前代码页面使用ASCII或ANSI以外的编码,则必须使用MultiByteTeToWideChar手动从源编码到UTF-16,并从wchar_t数组中构造_bstr_t