2012-09-12 68 views
0

我正在使用Visual Studio C++。字符串到字節轉換

我有這些代碼:

CString str; 
    BYTE byBuffer[10000] = { 0 }; 
    str ="Invalid Command. Spaces are not allowed too!!"; 
    strcpy_s(reinterpret_cast<LPSTR>(byBuffer), 10000, T2CA(str)); 

的問題是byBuffer =「無效的命令不允許有空格太!」;但在下一行之後,字符串會發生變化。 LPBYTE lp = byBuffer;雖然它適用於像OK,GOOD JOB這樣的小字符串。等。

我正在通過設置斷點來調試整個代碼。此外,此函數已被調用到其中(LPBYTE lpBuffer)接收此值的另一個函數。

plz幫助

+1

它以什麼方式不起作用。你得到了什麼樣的輸出? –

+0

你可以請一個小的可編譯版本的代碼?什麼是T2CA宏定義? – UnknownGosu

+0

只有前三個字符和垃圾郵件值如下:Inv @@@@@@@@@@@ – Nabeel

回答

2

你向我們展示的代碼看起來好了,我要出去的肢體,並作出猜測。

我猜你想從一個函數返回這個緩衝區:

LPBYTE lp = byBuffer; 
return lp; 

如果是這樣的話,那麼局部變量byBuffer是在功能和指針的結尾被破壞掉了不再指向有效的記憶。如果你能看到輸出中可識別的任何東西,那麼你很幸運。