2010-09-06 100 views
14

任何人都知道如何將BSTR轉換爲char *?將BSTR轉換爲char *

更新:我試圖做到這一點,但不知道它是對還是錯。

char *p= _com_util::ConvertBSTRToString(URL->bstrVal); 
strcpy(testDest,p); 

回答

18

您的代碼沒問題。 ConvertBSTRToString就是這樣。至於strcpy,需要足夠大以容納p指向的字符串。請注意,由於ConvertBSTRToString分配一個新的字符串,您需要將它釋放到某個地方。一旦你完成你一定要做:

delete[] p; 

需要注意幾個問題,雖然的(你可以從BSTR documentation on MSDN見):

  • 在Microsoft Windows,包括Unicode字符字符串(寬或 雙字節字符)。
  • 可能包含多個嵌入的空字符。

所以,你strcpy可能無法始終正常工作。