0
SendMessage(hEditControl, WM_GETTEXT,255,(LPARAM)editbuffer);
 GetWindowText(hTextControl, (LPWSTR)allText,GetWindowTextLength(hTextControl));

//allText = appendStrings((char*)TEXT("whatever"), (char*)TEXT("whatever"));
SetWindowText(hTextControl, (LPCWSTR)allText);

//where editbuffer and allText are defined as:

    static WCHAR*       editbuffer;
    static WCHAR*       allText;

ここで、hEditControlは編集コントロールへのハンドルであり、hTextControlは静的テキストコントロールへのハンドルです。編集コントロールからデータを取得して、静的コントロールテキストに追加したいと思います。しかし、私のプログラムはgetwindowtext関数でクラッシュし、その理由がわかりません。appendstring関数がなくても、クラッシュします。ちなみに、このコードはメインウィンドウのメッセージ処理機能にあります。

4

1 に答える 1

3

2つのバッファにはスペースが割り当てられていないため、バッファに書き込まれるものはすべて未定義の動作です。C ++はVLAをサポートしていないため、メモリを割り当てる必要があります。できれば静的でeditBuffer動的です。allText

于 2012-07-21T04:09:29.560 に答える