none
BSTR 經 wofstream 輸出到檔案 RRS feed

  • 問題

  • 請教,我有一個程式,使用 COM 和系統連結,傳回來的一個參數用的是 BSTR 格式,我用

    wofstream 的方式儲存資料,卻沒有辦法,會被截斷

    wofstream  OutStream( "Out.txt" ) ;

    OutStream << ( (LPCTSTR) (vParamNum.bstrVal) ) << "\n" ;

    查出來是因為  bstr 內含 "NULL" 或是檔案結束控制字元,

    請問該如何解決

    ps: 我有改用 OutStream( "Out.txt", std::ios::binary ) ;  方式開檔,改為二進位檔案,結果一樣


    kuolung

    2013年2月27日 上午 07:02

所有回覆

  • 您可以參考這個範例:Guide to BSTR and C String Conversions

    2013年2月27日 下午 12:29
  • 已參考上面的網址,將 BSTR 轉換為 CString 來儲存,還是不行,

    我仔細看一下,那個字串的內容為

    szFinal[0] = 63 '?'

    szFinal[1] = 28961 '無'

    szFinal[2] = 36039 '資'

    szFinal[3] = 26009 '料'

    szFinal[4]= 0 '\0'

    是不是這個 63 值為 EOF 值所以無法使用的關係


    kuolung

    2013年3月1日 上午 02:24
  • 會不會您的BSTR字串沒有內容
    2013年3月1日 下午 12:59
  • BSTR 的內容為

    szFinal[0] = 63 '?'

    szFinal[1] = 28961 '無'

    szFinal[2] = 36039 '資'

    szFinal[3] = 26009 '料'

    四個字元

    因為我的檔案就會在 63 這個字元後面斷了,所以才會猜測 63這個字元好像是 EOF 字元


    kuolung

    2013年3月4日 上午 03:55