Alright so I have an edit control and a static text control. When the user clicks a button, I want the program to take the text from the edit control and add it to the text in the static text control and then set that new value as the text in the static control. So I have a function that appends the buffers to one another but my program doesn’t seem to be working. This is what I have:
//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
So anyway, when I push the button, I’m pretty sure that the appendStrings function is working because I think it takes what is in the editbox and adds it to the Text box. The reason I say “i think” though is because the string in the text box is always just jibberish. Its sometimes random symbols or just these “l’s” (or what look like “L”s). I think it’s a problem with my pointers but I’m not sure. I’m new to this so if there is an easier way, please tell me.
You’re returning a pointer to a temporary that’s being destroyed before the function returns.
Instead of returning a
char *, return astd::string.