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

Windows forms C++ - dane z textBox'a przypisane do cstringa.
KU
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 9 lat
  • Postów:102
0
Kopiuj
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

edytowany 1x, ostatnio: kutacz
ST
Rozumiesz w ogóle co ten błąd mówi?
KU
To czym jest textBox1 jak nie klasą? Rozumiem błąd, ale na tę chwilę wydaje mi się niedorzeczny.
KU
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 9 lat
  • Postów:102
1

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

Kopiuj
textBox1->Text;
byku_guzio
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 7 lat
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.


edytowany 4x, ostatnio: byku_guzio
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:38 minut
4
Kopiuj
#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^?

edytowany 1x, ostatnio: Azarien
OT
Tak wygląda konwersja String^ do TCHAR*? Piękne.
KU
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 9 lat
  • Postów:102
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ć .

edytowany 1x, ostatnio: kutacz

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.