преобразование или приведение LPWST в BSTR

Как конвертировать LPWSTR в BSTR? LPWSTR — это WCHAR *, а BSTR — это OLECHAR *, OLECHAR снова имеет тип WCHAR, просто будет работать приведение типов? или нам нужно приложить дополнительные усилия? Это показывает плохую ошибку преобразования / предупреждение.

4

Решение

Вы делаете это так

BSTR pBstr = SysAllocString(szWCharString);

// do something with the BSTR here ...

SysFreeString(pBstr);

Вы должны помнить, чтобы освободить место, используемое для преобразования, вызвав SysFreeString после этого.

2

Другие решения

BSTR состоит из OLECHAR [] и информации о длине, добавленной к строке. BSTR является указателем на часть OLECHAR []. Но функции BSTR требуют информацию о длине (емкость и длина тока).

Вам нужно SysAllocString Функция для выделения всей структуры.

1

По вопросам рекламы [email protected]