It might sound as if I have no clue what I'm doing, but I actually have a vague idea.
Euhm ik kan het verkeerd hebben hoor (C++ is alweer tijdje geleden voor mij), maar probeer dit eens:
code:
1
2
3
| char test1234[100]; GetDlgItemText(TDlg, IDC_EDIT1, test1234, 100); MessageBox(0, test1234, "Dit typte je: ", MB_OK); |
[ Voor 4% gewijzigd door Daspeed op 15-05-2005 19:01 ]
Wat gaat er mis? Wat bedoel je met vastlopen? Krijg je een error melding? Zo welke en op welke regel? En welke zaken heb je nu zelf al geprobreerd? Zie ook P&W FAQ - De "quickstart"
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
Als je de documentatie voor GetDlgItemText() opzoekt zie je dat het derde argument een pointer naar een buffer moet zijn waar het resultaat in opgeslagen kan worden. Je hebt op dit moment wel een variabele van het type LPSTR (een char pointer dus) maar die wijst niet naar een buffer waarin geschreven kan worden want je hebt hiervoor helemaal geen geheugen gealloceerd.
Dus of dynamisch alloceren op de heap (en dus netjes opruimen):
of gewoon op de stack:
Het laatste is in dit geval wel zo makkelijk. Natuurlijk wel even kijken of die 100 ook groot genoeg is.
Dus of dynamisch alloceren op de heap (en dus netjes opruimen):
code:
1
2
3
4
5
6
7
| LPSTR test1234 = new CHAR[100]; // .... // code die test1234 gebruikt // .... delete[] test1234; |
of gewoon op de stack:
code:
1
| CHAR test1234[100]; |
Het laatste is in dit geval wel zo makkelijk. Natuurlijk wel even kijken of die 100 ook groot genoeg is.
Dat laatste werkt idd wel. Alleen zo'n buffer kom ik nog niet echt uit, maakt ook weinig uit, daar ga ik later wel even mee prutsen. Voorlopig voldoet een char.IrishMaiden schreef op maandag 16 mei 2005 @ 03:29:
code:
1 2 3 4 5 6 7 LPSTR test1234 = new CHAR[100]; // .... // code die test1234 gebruikt // .... delete[] test1234;
of gewoon op de stack:
code:
1 CHAR test1234[100];
Het laatste is in dit geval wel zo makkelijk. Natuurlijk wel even kijken of die 100 ook groot genoeg is.
Bedankt voor de hulp!
It might sound as if I have no clue what I'm doing, but I actually have a vague idea.
Voorlopig voldoet een char helemaal niet. Je hebt waarschijnlijk VC6, want in VC7 zou een buffer overflow check moeten zitten. Een char is vrijwel hetzelfde als een char[1]. Dat is niet genoeg. Nou ja, als je aan GetDlgItemText ook die grootte 1 meegeeft dan gaat er niets fout - technisch gesproken.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Pagina: 1