0

了解しました。編集コントロールと静的テキストコントロールがあります。ユーザーがボタンをクリックしたときに、プログラムが編集コントロールからテキストを取得して静的テキストコントロールのテキストに追加し、その新しい値を静的コントロールのテキストとして設定するようにします。そのため、バッファを相互に追加する関数がありますが、プログラムが機能していないようです。これは私が持っているものです:

//when button message is recieved:
SendMessage(hwndEditControl, WM_GETTEXT,255,(LPARAM)editbuffer);
GetWindowText(hwndTextControl, (LPWSTR)allText, GetWindowTextLength(hwndTextControl));
allText = appendStrings((char*)editbuffer, (char*)allText);
SetWindowText(hwndTextControl, (LPCWSTR)allText);}

 // where appendStrings is defined as:

char* appendStrings (char* buffer1, char* buffer2)
{
    std::string string1(buffer1), string2(buffer2);
    std::string string3 = string1 + string2; 
    return (char*)string3.c_str();
}
//and
static char*        editbuffer = new char;
static char*        allText    = new char; //these are defined as so

とにかく、ボタンを押すと、appendStrings関数が機能していると確信しています。これは、編集ボックスにあるものを取得して、テキストボックスに追加すると思うからです。私が「私が思う」と言う理由は、テキストボックス内の文字列が常にぎこちないからです。その時々ランダムな記号または単にこれらの「l」(または「L」のように見えるもの)。ポインタに問題があると思いますが、よくわかりません。私はこれが初めてなので、もっと簡単な方法があれば教えてください。

4

1 に答える 1

3

関数が戻る前に破棄される一時へのポインターを返しています。

a を返す代わりに、 achar *を返しますstd::string

于 2012-07-27T21:20:13.180 に答える