Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
416 views
in Technique[技术] by (71.8m points)

c++ - Convert BSTR to char*

Anyone know how to convert BSTR to char* ?

Update: I tried to do this, but don't know if it is right or wrong.

char *p= _com_util::ConvertBSTRToString(URL->bstrVal);
strcpy(testDest,p );
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Your code is okay. ConvertBSTRToString does just that. As for the strcpy, testDest needs to be large enough to hold the string pointed to by p. Note that since ConvertBSTRToString allocates a new string you will need to free it somewhere down the line. Once you are done make sure you do:

delete[] p; 

A couple of caveats though (as you can see from BSTR documentation on MSDN):

  • On Microsoft Windows, consists of a string of Unicode characters (wide or double-byte characters).
  • May contain multiple embedded null characters.

So, your strcpy may not always work as expected.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...