Windows forms C++ - dane z textBox'a przypisane do cstringa.

0
private: System::Void echoButton_Click(System::Object^  sender, System::EventArgs^  e) 
			 {
				 
				 TCHAR echoedText[]=textBox1.text;

}

Tu niestety jest błąd:

1>c:\users\zosia\documents\visual studio 2010\projects\echowf\echowf\Form1.h(115): error C2228: left of '.text' must have class/struct/union

1

Pfff, rzeczywiście ten debugger mógł mnie naprowadzić

textBox1->Text;
2
kutacz napisał(a)

Pfff, rzeczywiście ten debugger mógł mnie naprowadzić

Po pierwsze: nie debugger, a kompilator - to są dwa zupełnie różne programy...

kutacz napisał(a)

To czym jest textBox1 jak nie klasą?

Po drugie: textBox1 na pewno nie jest klasą tylko uchwytem do obiektu jakiejś klasy - różnica kolosalna - mylisz instancje klas z klasami i do tego jeszcze uchwyty Ci mieszają.
Zamiast bawić się okienkami proponuję przyswoić podstawy najpierw C++, a dopiero potem bawić się hybrydą jaką jest C++\CLI, bo masz problemy z podstawami.

Po trzecie: nazwa textBox1 to nie jest żadna nazwa - nazwy zmiennych, funkcji, klas itd. mają mówić o swoim przeznaczeniu.

4
#include <msclr\marshal.h>
using namespace msclr::interop;

marshal_context ctx;
const TCHAR *echoedText = ctx.marshal_as<const TCHAR*>(textBox1->Text);

// echoedText zostanie zwolnione gdy ctx wyjdzie z zasięgu

ale pytanie brzmi: czy na pewno tego potrzebujesz? czy napis nie może zostać jako String^?

0

Błąd wynikał z tego, że myślałem , że Windows Forms to takie starsze/okrojone WPF. Z innej beczki-dzięki za pokazanie zgrabnej metody konwersji System::String^ na tchara, właśnie chciałem o to zapytać w nowym temacie :)

ale pytanie brzmi: czy na pewno tego potrzebujesz? czy napis nie może zostać jako String^?

Tak, potrzebuję bo chce jak najwcześniej uciec od pisania w tym dziwnym dialekcie C++, jeszcze nie czas u mnie się tego uczyć .

1 użytkowników online, w tym zalogowanych: 0, gości: 1