none
偵錯下,顯示CString的文字內容 RRS feed

  • 問題

  • 大家好
    目前使用vs.net2005,vc++, MFC doc/view, unicode 字元集, project-type for smartphone
    請問如果我希望能在debug模式下,在自動變數的瀏覽視窗中能看到CString的文字內容,請問是否可能?又應該修改vc++工具的設定呢?(因為現在都只顯示CString內容的address)

    thanks for any msg.

    2007年5月10日 上午 01:48

解答

  • HI,

     

    顯示在CString變數位址後面的就是CString管理的字串內容, 直接可以看到, 不需要設定

     

    tihs

    2007年5月10日 上午 03:08

所有回覆

  • HI,

     

    顯示在CString變數位址後面的就是CString管理的字串內容, 直接可以看到, 不需要設定

     

    tihs

    2007年5月10日 上午 03:08
  • 您說對了,謝謝。
    不過另外還發現如果要看CString變數內容,必須點開"+"兩次,是否有可以直接顯示的方式?
    2007年5月10日 上午 03:18
  • HI,

     

    您應該可以在CString變數位址的後面直接看到字串的內容, 不需要點+號展開

     

    tihs

    2007年5月11日 上午 02:01
  • 我只看到位址,並沒有看到CString的內容,是有啥設定沒設到嗎?
    2007年5月11日 上午 09:56
  • 除非點開"+"
    2007年5月11日 上午 09:57
  • HI,

     

    請問您的程式如何指派CString類別變數的內容值?

     

    tihs

    2007年5月13日 上午 04:36
  • HI
    指派方式如下
    suppose
    BYTE buf[512];

    ....
    fread(buf,....);

    CString s((WCHAR*)(buf+2));

    2007年5月14日 上午 01:19
  • HI,

     

    您可以這樣做看看:

     

    BYTE buf[512];

    ....
    fread(buf,....);

    CString s(buf);

     

    tihs

    2007年5月14日 上午 06:32
  • 謝謝回應
    但是我是了,這樣不行
    因為CString的constructor不接受BYTE型態
    2007年5月14日 上午 09:17
  • HI,

     

    不會啊! CString的constructor可以接受BYTE陣列, 如下:

     

    BYTE buf[16]={0x65, 0x66, 0x67};
      CString s(buf);

     

    在監看式視窗中可以看到s變數的內容, 不是位址

     

    tihs

    2007年5月16日 上午 04:35
  • 因為日前在中國地區出差,不知道為何而不能在此論壇上進行回覆,導致拖延甚久,請見諒。

     

    我在此問題上的程式大致如下使用

     

    BYTE buf[16];

    ...

    CString s(buf+2);

    該buf的內容是從檔案中讀出,且放入CString的位址也不是buf的起頭

    不知道是不是因為此原因,致結果與你所說不同

     

    2007年6月5日 上午 01:46
  • HI,

     

    buf+2功能是否要跳過檔頭, 如果是的話, 可以在讀檔的時候就跳過, 再把buf中所要的內容交給CString使用

     

    tihs

    2007年6月5日 上午 01:57
  • 如果要解決此問題大概也只能如你所說的作法了

    謝謝你的回覆。

    2007年6月5日 上午 06:09