Z tablicy char do labela


(P Piechowiak) #1

Witam, dopiero zaczynam swoją przygodę z programowaniem i mam już pewien problem. Robię aplikację okienkową Windows Form w Visual Studio 2013 w c++ i chciałem przechowywać pytania, które mają się wyświetlać użytkownikowi w tablicy const char. I tu pojawia się problem, a mianowicie gdy chcę przypisać np. pierwsze pytanie do labela wyskakuje mi błąd pokazujący :


(Edgarus) #2

Zamiast

const char* Pytania[133][8]

użyj lepiej tablicy ciągów znaków:

string ^ Pytania[ilość]
albo

System::Collections::Generic::List<System::String^> Pytania;

Cli ma swoje typy “kompatybilne” z kontrolkami i innymi językami .net, np C#. Nie musisz bawić się we wskaźniki.

Po liście, możesz iterować za pomocą pętli for each.

 

Pamiętaj  o ^ - taki “wskaźnik” dotnetowy != od *.

instancje obiektów tworzysz np przez operator gcnew, np:

System::Collections::Generic::List<System::String^>^ lista = gcnew System::Collections::Generic::List<System::String^>();

Ogólnie to polecam przejrzeć msdn, bo takie konstrukcje to norma dla c++cli :slight_smile:

 

Text w labelu jest właśnie typu String.

 

Jeśli chcesz dalej działać na wskaźnikach *, to label1->Text = gcnew String(tutaj dajesz wskaźnik do char).