Зависит от того, как вы определяете «библиотеки или функции VC ++».Тип BSTR в значительной степени является типом VC ++.Однако если вы считаете это типом «Windows», то в библиотеках «Windows» и «Windows» можно использовать функции манипуляции BSTR.Все зависит от того, что вы делаете, какой компилятор вы используете, и любых других технических ограничений.Было бы неплохо описать, почему вы не можете использовать библиотеки VC ++ в этом вопросе.
На самом деле тип BSTR достаточно хорошо понят и задокументирован.См. здесь .
Это не выходит за пределы возможностей, если вам по какой-то причине запрещено использовать какие-либо функции манипуляции Microsoft BSTR для написания собственных функций манипуляции BSTR для преобразованиямежду BSTR
и char *
.
Как дешевый и ОЧЕНЬ неприятный хак, я до этого приводил BSTR к символу *, а затем копировал каждый альтернативный символ в буфер или подобный.Однако это не справляется со специальными персонажами и является очень и очень неприятным взломом.Пожалуйста, не делайте этого, если только вы не можете гарантировать, что все символы в BSTR являются стандартными символами ASCII (или не волнует, не являются ли они таковыми) и делают это только как быстрый отладочный хак или что-то вроде этого, а не как правильное производствокод качества.