It depends how you define "VC++ libraries or functions". The BSTR type is pretty much a VC++ type. If however you consider it a "Windows" type then there are BSTR manipulation functions in "Windows" libraries and "Windows" functions that you can use. It all depends on what you are doing, what compiler you are using, and any other technical limitations. It would have been a good idea to describe why you can't use VC++ libraries in the question.
In fact the BSTR type is quite well understood and documented. See here.
It is not beyond the bounds of possibility, should you be disallowed for some reason from using any of the Microsoft BSTR manipulation functions, to write your own BSTR manipulation functions to convert between a BSTR
and a char *
.
As a cheap and VERY nasty hack, I have before now cast a BSTR to a char * and then copied every alternate character to a buffer or similar. However this does not cope with special characters and is a very very nasty hack. Please do not do it unless you can guarantee that the characters in the BSTR are all standard ASCII characters (or don't care if they are not) and are only doing it as a quick debug hack or something liek that, rather than proper production quality code.