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) がこの値を受け取った別の関数に呼び出されました。

助けてください

4

1 に答える 1

2

あなたが見せているコードは問題ないように見えるので、私は手足に出て推測します。

関数からこのバッファを返そうとしていると思います。

LPBYTE lp = byBuffer;
return lp;

その場合、ローカル変数byBufferは関数の最後で破棄され、ポインタは有効なメモリを指さなくなります。出力に認識できるものがすべて表示されれば、幸運です。

于 2012-09-12T18:09:22.130 に答える